c 學習筆記 函式模板與類模板的綜合運用

2021-07-31 13:23:46 字數 3099 閱讀 9072

一維陣列 接受 普通資料型別 以及 自定義 複數類 

#include#include#include#includeusing namespace std;

class complex;

ostream operator<<(ostream& out,const complex& c);

complex add(const int a,const complex &c1);

complex jian(const int a,const complex &c1);

complex chen(const int a,const complex &c1);

complex chu(const int a,const complex &c1);

class complex

~complex(){}

complex operator+(const complex& c1)const;

complex operator-(const complex& c1)const;

complex operator*(const complex& c1)const;

complex operator/(const complex& c1)const;

complex operator-();

complex operator++();

complex operator++(int);

bool operator==(const complex& c1)const;

bool operator!=(const complex& c1)const;

bool operator>(const complex& c1)const;

bool operator<(const complex& c1)const;

friend ostream operator<<(ostream& out, const complex& c);

private:

double real;

double imag;

};complex complex::operator+(const complex& c1)const

complex complex::operator-(const complex& c1)const

complex complex:: operator*(const complex& c1)const

complex complex:: operator/(const complex& c1)const

complex add(const int a,const complex &c1)

complex jian(const int a,const complex &c1)

complex chen(const int a,const complex &c1)

complex chu(const int a,const complex &c1)

complex complex::operator-()

complex complex::operator++()

complex complex::operator++(int)

bool complex::operator==(const complex& c1)const

bool complex::operator!=(const complex& c1)const

bool complex::operator>(const complex& c1)const

else

}bool complex:: operator<(const complex& c1)const

else

}ostream operator<<(ostream& out, const complex& c)

;templatearray::array(int sz)

templatearray::array(const t* li,int n)

templatearray::array(const array&a)

for(int i = 0;it & array::operator(int i)

templatevoid array::swap(t &x,t &y)

templatevoid array::sort(t a,int n)

集合類 實現增加刪除 交並補 排序 包含 相等 的類模板 

#include#include#includeusing namespace std;

templateclass set

;templateset::set(int n)

templateset::set(t a,int n)

}templatevoid set::remove(t a)

templatesetset::bing(seta)

templatebool set::xiangdeng(seta)

int t =0;

for(int i = 0;ibool set::baohan(seta)

if(size > a.size) }

if(size < a.size) }

return false;

}templatesetset::cha(seta)

int main()

; int v = ;

int num = sizeof(a)/sizeof(int);

int num2 = sizeof(v)/sizeof(int);

sets(a,num);

sets2(v,num2);

s2.show();

s.show();

bool w = s.baohan(s2);

cout<<"s 與 s2是否有包含關係 "b.show();

bool p = s.xiangdeng(b);

cout<<"b 與 s 是否相等"<<" "c.show();

bool q = s.xiangdeng(c);

cout<<"c 與 s 是否相等"<<" "d.show();

return 0;

}

C 學習筆記(一)函式模板與類模板

本文講解了c 函式模板和類模板的相關知識,當需要多個函式對多個不同的資料型別的資料進行相同的處理時,需要多次過載函式,而使用函式模板,編譯器產生不同的目標 函式來適當地處理每個函式的呼叫,顯得更加簡便。將這一概念引入至類中,將類中資料成員的型別都引數化 把資料型別定義為引數 在初始化類物件的時候,根...

C 函式模板與類模板

一 函式模板 1 函式模板 建立乙個通用函式,其函式型別和形參型別不具體指定,用乙個虛擬型別來代表這個通用函式來代表。凡是函式體相同的函式都可以用這個模板來代替,不必定義多個函式,只需在模板中定義一次即可。在呼叫函式時系統會根據實參的型別來取代模板中虛擬的型別,從而實現不同函式的功能。作用 功能相同...

C 函式模板與類模板

由菜鳥網整理總結,整理文章 作者做的任務只是將知識點簡化更供人理解以及加了一些自己的認知。模版可以理解成把資料型別做成可以設定的引數化,然後在定義的時候套用,讓資料型別可以隨意變換。使用模板的目的就是能夠讓程式設計師編寫與型別無關的 比如編寫了乙個交換兩個整型int 型別的swap函式,這個函式就只...