實驗8 模板

2021-08-20 22:56:07 字數 1820 閱讀 9788

實驗目的和要求

1.能夠使用c++模板機制定義過載函式。

2.能夠例項化及使用模板函式。

3.能夠例項化和使用模板類。

4.應用標準c++模板庫(stl)通用演算法和函式物件實現查詢和排序。

實驗內容

1.分析並除錯下列程式,了解函式模板的作用。

[html] 

view plain

copy

//sy8_1.cpp  

#include<

iostream

>

using namespace std;  

template<

class

t>

t max(t a,t b)  

int max(int a,int b)  

int main()  

(1)寫出執行結果,分析編譯系統工作過程

結果如下:

分析如下:

原程式中缺少乙個與函式模板同名的普通函式,因此程式除錯不成功,所以我們需要定義乙個與函式模板同名的普通函式用來過載函式模板。

(2)如果定義函式過載,**如下:

[html] 

view plain

copy

int max(int a,int b)  

float max(float a,float b)  

如果程式中有max('6','5');釣魚哦能夠時會出現什麼結果?為什麼?上機除錯分析原因。

程式如下:

[cpp] 

view plain

copy

//sy8_1.cpp

#include

using

namespace

std;  

template

<

class

t>  

t max(t a,t b)  

intmax(

inta,

intb)  

float

max(

float

a,float

b)  

intmain()  

執行結果如下:

原因:定義的單精度型和整型普通函式都是為了過載函式模板,而程式中a和b的值都是整型,所以執行結果跟原來的一樣。

2.分析並除錯下列程式,了解特定模板函式的作用。

[cpp] 

view plain

copy

//sy8_2.cpp

#include

using

namespace

std;  

template

<

typename

t>  

t max(t a,t b)  

intmax(

inta,

intb)  

char

*max(

char

*a,char

*b)  

intmain()  

(1)寫出執行結果

(2)說明特定模板函式的作用。

(3)宣告乙個類模板,利用它實現10個整數、浮點數和字元的排序。

(4)生命乙個整型陣列,使用它實現c++標準模板庫(stl)中的查詢演算法find()進行資料的查詢,然後應用排序演算法sort()對資料進行公升序和降序排序。

實驗8 模板

1 理解函式模板 類模板,應用模板函式 模板類。2.實驗內容 1 用函式模板方式設計乙個函式模板sort,採用直接插入排序方式對資料進行排序,並對整數序列和字串行進行排序。template class t void sort t a,int n includeusing namespace std ...

實驗8 模板

實驗目的和要求 1.能夠使用c 模板機制定義過載函式。2.能夠例項化及使用模板函式。3.能夠例項化和使用模板類。4.應用標準c 模板庫 stl 通用演算法和函式物件實現查詢和排序。實驗內容 1.分析並除錯下列程式,了解函式模板的作用。sy8 1.cpp includeusing namespace ...

實驗8 模板(P292)

實驗目的和要求 1.能夠使用c 模板機制定義過載函式。2.能夠例項化及使用模板函式。3.能夠例項化和使用模板類。4.應用標準c 模板庫 stl 通用演算法和函式物件實現查詢和排序。實驗內容 1.分析並除錯下列程式,了解函式模板的使用。sy8 1.cpp includeusing namespace ...