C 物件導向程式設計之模板

2021-09-26 12:24:50 字數 1772 閱讀 8722

1、提高程式可重用性的兩種辦法:

繼承;

泛型程式設計(模板)

2、模板的例項化:編譯器根據模板自動生成函式的過程稱為模板的例項化。

3、函式模板的形式:

template返回值型別  模板名(形參表);

4、函式模板的一些特點

函式的模板中可以有不止乙個型別引數

template t2 print(t1 arg1,t2 arg2)

}int cube(int x)

double square(double x)

int a[5]=,b[5];

double d[5]=,c[5];

int main();

template//型別參數列

class 類模板名

;

其實typename和class是等價的,用那個都行。

2.3 類模板中成員函式的寫法:

template//型別參數列

返回值型別 類模板名 《型別引數名列表》::成員函式名(形參數列)

2.4 類模板定義物件的寫法:

類模板名《真實型別參數列》 物件名(建構函式實參表);
example

templateclass pair

;bool operator < (const pair& p) const

2.6 類模板與非型別引數

類模板的「《型別參數列》」中可以出現非型別引數

template class carray;

template class b:public a

templateclass c:public b

int main()

1.2 類模板從類模板派生

template class a;

template class b:public a;

int main()

1.3類模板從普通類派生

class a;

templateclass b:public a;

int main()

1.4 普通類從模板類派生

template class a;

class b:public a;

int main()

函式、類、類的成員函式作為類模板的友元;

函式模板作為類模板的友元;

函式模板作為類的友元;

類模板作為類模板的友元;

4.1 函式、類、類的成員函式作為類模板的友元

void func1(){}

class a{};

class b

};template class tmpl

;//任何從tmpl1例項化來的類,都有以上三個友元

4.2 函式模板作為類模板的友元

物件導向程式設計之術語

術語 含義屬性 一小段資訊,例如顏色 高度或重量,描述物件的乙個特性 字段物件內部的指定值 操作屬於物件的一段 方法操作的同義詞 訊息從乙個物件傳送到另乙個物件的請求 呼叫執行操作,以響應訊息 執行呼叫的同義詞 關聯兩個物件之間的直接或間接連線 聚合強關聯,隱含著某種部分 一體層次結構 復合強聚合,...

物件導向程式設計(二) C 模板初探

背景 老師留了乙個作業,對兩個陣列進行相加,但是總是會出現錯誤 首先我們需要知道當陣列作為引數傳遞的時候是不能用 sizeof 的,因為當陣列傳入子函式就變成了普通的陣列頭 這時候使用 sizeof 只會檢測到指標的長度 我們用模板來傳遞陣列,實際上並非模板可以傳遞陣列,而是引用傳遞完成了這件事 對...

物件導向的程式設計之建立物件

物件的定義 無序屬性的集合,屬性的值可以是基本值 物件或者函式.每個物件都是基於乙個應用型別建立的,這個引用型別可以是內建的 例如objectarraymath 也可以是使用者自定義的.所有的物件都是繼承自object的,因此我們可以從object著手建立物件.通過new 關鍵字建立物件 var p...