函式的學習與總結
經過這半個月的學習,我對c++中的函式有了乙個初步的理解。在我的認識中,c++中的函式實際上就是一種針對某種問題的解決方案,本質上就是一種演算法。正如數學中一般,我們會為了解決某個問題寫出解析式,然後向解析式中帶值。在c++中,我們也需要為解決某個問題寫出演算法,然後向裡面帶引數。
#include
using namespace std;
int f(int&);函式原型,定義函式名;
int main()
{int n;
cin>>n;此處n有具體值,為實參;
f(n);呼叫函式;
cout《在函式中引數分為形參與實參,二者都為變數。其中形參便猶如數學中f(x)=2x+1中的x,而實參則是我們向解析式中帶入的具體值。函式中實參向形參傳遞方式主要有三種,分別是按值傳遞、位址傳遞與引用傳遞。傳遞方式可根據形參判斷。
按值傳遞僅僅是將實參的資料值傳遞給形參,在被呼叫的函式中形參可改變,但對實參無影響。定義方式可為int f(int t);
位址傳遞是將實參的位址值傳遞給形參,這是形參是指標,即讓形參的指標指向實參位址,這裡不再是將實參的乙個副本拷貝給形參,而是讓形參直接指向實參。這時呼叫函式中形參的變化將影響實參的改變。定義方式可為int f(int *p);
引用傳遞可理解為給實參取乙個別名,如果以引用為引數,則既可以使得對形參的任何操作都能改變相應的資料,又使得函式呼叫顯得方便、自然、更省空間。這是最簡便的方式。定義方式可為int f(int &m)。
注意:再說明變數中用"*"是定義指標變數,用"&"為引用別名;
在正常語句中用"*"代表取指標變數所指向的目標變數,用"&"代表取位址。
對於一般函式來說,我們一般在主函式中呼叫,在函式中可呼叫其它函式卻不呼叫其本身;而對於遞迴函式來說,我們可以直接或間接地呼叫自身函式。其特點為將大型複雜問題轉化為規模較小的問題。例如:求n!
#include
using namespace std;
long fact(int n)
if(n==0) return 1;遞迴邊界(遞迴終止情況)
else return n*fact(n-1);遞迴式(遞迴呼叫)
int main()
int n;
cout<<"enter n(>=0):";
cin>>n;
cout《感悟:經過一段時間的學習,我認為可以將函式看作一種工具。當我們在解決某個問題時,可以將其分解為幾部分,通過函式分別解決,最終解決問題。也可將其用作某種功能的實現,通過自己編寫的演算法,完成這種功能。總而言之,函式的運用可以幫助我們更為簡便的解決問題!
學習與總結
私有構造方法的類,不可被繼承.1.靜態工廠方法取代構造方法,組合取代繼承.優點 有名稱,不用每次呼叫建立乙個物件,可以返回原型別的子型別,引數型別例項更簡潔 2.n個必選引數 多個可選構造引數存在的情況下 建議使用 構造器模式 一般情況使用重疊構造器模式,但是可選引數超過4個就比較繁瑣 重疊構造如下...
「函式」的整理與總結
建立函式 let func new function arg,code.通過建構函式建立函式,function constructor function true arguments.callee是指向引數arguments物件的函式,也就是自身函式 caller是函式物件的乙個屬性,該屬性儲存著呼...
流的學習與總結
1.檔案物件file 絕對路徑 file f1 new file d lolfolder 相對路徑,相對於工作目錄,如果在eclipse中,就是專案目錄 file f2 new file lol.exe 把f1作為父目錄建立檔案物件 file f3 new file f1,lol.exe 在建立乙個...