第七章 C 類模板

2021-09-29 18:13:47 字數 1494 閱讀 5009

一、問答題

1、 下面類模板宣告中, 正確的是() 。

a. template

b. template

c. template

d. template

選擇c,d

2、 函式模板和類模板有什麼區別?

函式模板中定義的型別引數可以用在函式宣告和函式定義中,類模板中定義的型別引數可以用在類宣告和類實現中。

函式模板的例項化是由編譯程式在處理函式呼叫時自動完成的,而類模板的例項化必須由程式設計師在程式中顯式地指定。

二、程式設計題

1、 設計乙個函式模板, 實現求某個數值(整形或浮點型) 的絕對值。

#include

using namespace std;

template

t abs

(t x)

intmain()

2、 設計乙個函式模板, 實現對 t a[n] 進行排序,模板引數 t 可例項化為字串、 整形、 浮點型。

#include

#include

using namespace std;

template

void

sort

(t*a,

int n)}}

}template

void

print

(t*a,

int n)

cout << endl;

}int

main()

;int int[5]

=;double dou[5]

=;sort

(a,5);

sort<

int>

(int,5)

; sort<

double

>

(dou,5)

;print

(a,5);

print

(int,5)

;print

(dou,5)

;return0;

}

3、 乙個 sample 類模板的私有成員為 t n, 要求在此類模板中設計乙個operator == 過載運算子函式, 用於比較各個類物件的 n 是否相等。

#include

#include

using namespace std;

template

class sample

; bool operator ==

(sample &a)

;private:

t n;};

template

bool sample

::operator ==

(sample &a)

return false;

}int

main()

第七章 復用類

1 子類可以使用父類public protected的方法和成員。子類可以過載父類的方法,但是方法名和引數列表相同,當返回型別不同的方法在子類中會出現編譯期錯誤。由8.4節中允許 犯規協變返回型別,即子型別。2 基類中private可視為基類的結構,對外無任何影響,所以在子類中出現乙個方法名和引數列...

第七章 復用類

class cleaner public cleaner private string s cleaner s a public void dilute public void scrub public string tostring public static void main string a...

第七章 類(重點)

在c 語言中,我們使用類定義自己的資料型別。資料抽象能幫助我們將物件的具體實現與物件所能執行的操作分離開來。資料抽象是一種依賴於介面和實現分離的程式設計 以及設計 技術。類的介面包括使用者所能執行的操作 類的實現則包括類的資料成員 負責介面實現的函式體以及定義類所需的各種私有函式。封裝實現了類的介面...