c 學習筆記八

2021-09-01 10:26:36 字數 1333 閱讀 7998

函式

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 函式模板 乙個簡章的函式模版...