C 模板學習

2021-09-29 11:27:49 字數 1630 閱讀 3434

一.模板的概念

void

swapint

(int

&a,int

&b)//a和b都是int型別,復用率不高

template

<

typename t>

//宣告乙個模板,告訴編譯器**中t不要報錯,t是乙個通用資料型別

void

myswap

(t &a, t &b)

void

test01()

intmain()

二.普通函式和函式模板的呼叫規則

1.如果函式模板和普通函式都可以使用,優先呼叫普通函式

2.可以通過空模板引數列表,強制呼叫模板函式

3.函式模板可以發生函式過載

4.如果函式模板可以產生更好的匹配,優先呼叫函式模板

三.類模板

template

<

class

nametype

,class

agetype

>

class

person

void

showperson()

nametype m_name;

agetype m_age;};

void

test01()

intmain()

四.類模板與函式模板的區別

1.類模板沒有自動型別推導的使用方式

2.類模板在模板引數列表中可以有預設引數 eg:template< class nametype=string,class agetype=int>

五.類模板物件做函式引數

學習目標:

類模板例項化出的物件,向函式傳參的方式

三種傳入方式:

1.指定傳入的型別——直接顯示物件的資料型別

2.引數模板化——將物件中的引數變為模板進行傳遞

3.整個類模板化 ——將這個物件型別模板化進行傳遞

template

<

classt1,

class

t2>

class

person

void

showperson()

t1 m_name;

t2 m_age;};

void

test01()

//1,指定傳入型別

void

printperson

(personint>

&p)//2.引數模板化

template

<

classt1,

class

t2>

void

printperson2

(person

&p)void

test02()

//3.整個類模板化

template

<

class

t>

void

printperson3

(t &p)

void

test03()

intmain()

C 之模板 模板的學習 學習模板

c 之模板 模板學習 學習模板 模板就是建立通用的模具,大大提高復用性 函式模板 c 提供兩種模板機制函式模板和類模板 函式模板語法 函式模板作用 建立乙個通用函式,其函式返回值型別和形參型別可以不具體制定,用乙個虛擬的型別來代表 語法 template typename t 函式宣告或定義解釋 t...

C 模板學習

模板定義 模板就是實現 重用機制的一種工具,它可以實現型別引數化,即把型別定義為引數,從而實現了真正的 可重用性。模版可以分為兩類,乙個是函式模版,另外乙個是類模版。類模板 允許使用者為類定義一種模式,使得類中的某些資料成員 某些成員函式的引數 某些成員函式的返回值,能夠取任意型別 包括系統預定義的...

C 學習 模板

當你在寫 的時候可能會遇到這樣的情況,多處地方都需要呼叫同乙個功能 方法,但是我們不知道呼叫者傳遞進來的引數型別,以及這個方法的返回型別,或許你可能想到的是過載或者重寫,但是還有另一種方式實現就是 模板。當然除此之外,還有類模板,它是實現 重用的一種工具。模板可以說是分為兩種型別,一種是類模板,一種...