函式
1 函式的過載: 函式名相同,引數個數不同
引數個數相同,引數型別不同
函式的簽名
過載和指標引數
例如:int temp(int * pnum1,int * pnum2);
int temp(long * pnum1,long * pnum2);
過載和引用引數
過載和const引數
2 函式模板
乙個簡章的函式模版
templatet larger(t a, t b)
建立模版的例項
larger(1.5,2.5);
顯示指定模板引數板
larger(num1,num2);
模板說明
template<> long * larger(long * a,long * b)
函式模板過載
long * larger(long * a,long * b);
帶多個引數的函式模板 (第二個引數為模板的返回型別)
template treturn larger(targ a,targb)
非型別的模板引數
例如(檢查值的作用域):
template(class t,int upper,int lower) bool isin_range(t value)
3 函式指標
可用類和函式的過載來替代此功能
宣告函式指標
例如(pfun指向乙個函式,有兩個引數long* 和int,返回值為long)
格式如下:
返回型別(指標名)(引數列表)
long (* pfun)(long *, int);
在使用函式指標呼叫函式之前,必需先初始化函式指標
**如下:
long test(long * num1,int num2);
pfun=test;
在使用函式指標的時候就跟使用函式名是一樣的
把函式作為引數傳送
例如:函式原型
double sum_array(double array,int length,double(*pfun)(double));
函式指標的陣列
例如:double fun1(double,double);
double fun2(double,double);
double fun3(double,double);
double (*pfun)(double,double)=;
4 遞迴
例如計算乙個數的階乘
long function(long n)
return n*function(n-1);
}實現遞迴排序
C 學習筆記八
24 子物件 當乙個類的成員時另乙個類的物件時,該物件就為子物件。子物件即是物件的成員 當類中出現了子物件 物件成員 該類的建構函式要包含對子物件的初始化,通常採用成員初始化列表的方法來初始化子物件 include class a void print class b 成員初始化列表,私有成員可以通...
C 學習筆記(八)
類 類的建構函式和析構函式 this指標 物件陣列 1.c 區別於c語言的物件導向特性 抽象 封裝和資料隱藏 多型 繼承 的可重用性 2.封裝 將實現細節放在一起並將它們與抽象分開。3.資料隱藏 將資料放在類的私有部分中 是一種封裝。資料隱藏可以是資料變的安全,同時使得類的使用者無需關心資料是被如何...
c 學習筆記八
函式 1 函式的過載 函式名相同,引數個數不同 引數個數相同,引數型別不同 函式的簽名 過載和指標引數 例如 int temp int pnum1,int pnum2 int temp long pnum1,long pnum2 過載和引用引數 過載和const引數 2 函式模板 乙個簡章的函式模版...