C Day8 函式模板與類模板

2021-10-21 21:09:18 字數 2656 閱讀 8386

#include using namespace std;

void myswapint(int &a,int &b)

void myswapdouble(double& a, double& b)

//利用模板實現通用交換函式

//t代表乙個通用資料型別,告訴編譯器如果***跟著的函式或類**現t不要報錯

templatevoid myswap(t& a, t& b)

//模板不能單獨使用,必須指定出t才可以使用

void test01()

int main()

#include using namespace std;

templatet myadd(t a, t b)

int myadd2(int a, int b)

void test01()

//函式模板和普通函式呼叫規則

templatevoid myprint(t a, t b)

templatevoid myprint(t a,t b,t c)

void myprint(int a, int b)

void test02()

int main()

模板的侷限性

#include #include using namespace std;

template//類模板中可以有預設引數

class person

void showperson()

nametype m_name;

agetype m_age;

};void test01()

int main()

#include #include using namespace std;

templateclass person

void showperson()

t1 m_name;

t2 m_age;

};//指定傳入型別

void dowork(person&p)

void test01()

//引數模板化

templatevoid dowork2(person& p)

void test02()

//整個類模板化

templatevoid dowork3(t &p)

void test03()

int main()

#include #include using namespace std;

templateclass base

;//必須指定出父類中t的資料型別,才能給子類分配記憶體

class son : public base;

templateclass base2

;templateclass son2 : public base

t1 m_b;

};void test01()

int main()

#include #include using namespace std;

templateclass person

void showperson()

t1 m_name;

t2 m_age;

};void test01()

int main()

#includeusing namespace std;

#include templateclass person;

templatevoid printperson2(person&p);

templatevoid printperson3(person&p)

templateclass person

//2、友元函式 類外實現

friend void printperson2<>(person&p);

friend void printperson3<>(person&p);

public:

person(t1 name, t2 age)

private:

t1 m_name;

t2 m_age;

};templatevoid printperson2(person&p)

void test01()

int main()

#includeusing namespace std;

#include "myarray.hpp"

#include class person

; person(string name,int age)

string m_name;

int m_age;

};void myprintint(myarray &myintarr)

}void test01()

myprintint(myintarr);

}void myprintperson(myarray&mypersonarr)

}void test02()

int main()

函式模板與類模板(模板類)

什麼是泛型程式設計?泛型程式設計 編寫與型別無關的通用 是 復用的一種手段。模板是泛型程式設計的基礎。模板分為函式模板和類模板 下面我們就來說說函式模板 函式模板與型別無關,在使用時被引數化,根據實參型別產生函式的型別版本 格式 template 返回值型別 函式名 引數列表 templatet1 ...

模板 函式模板與類模板

模板 template 是乙個將資料型別引數化的工具。模板分為函式模板和類模板兩種。在定義模板的時候不說明某些函式引數或者資料成員的型別,而將它們的資料型別作為模板引數。在使用模板時根據實參的資料型別確定模板引數即資料型別,從而得到模板的乙個例項。函式模板 function template 函式模...

函式模板與類模板

c 提供的函式模板可以定義乙個對任何型別變數進行操作的函式,從而大大增強了函式設計的通用性。使用函式模板的方法是先說明函式模板,然後例項化成相應的模板函式進行呼叫執行。函式模板的一般說明形式如下 template 模板形參表 返回值型別 函式名 模板函式形參表 其中,模板形參表 可以包含基本資料型別...