10 23 類模板

2021-09-28 22:19:24 字數 1632 閱讀 8000

類模板實現乙個支援各種型別的陣列

類模板中成員函式建立時機

類模板中成員函式和普通類中成員函式建立時機是有區別的:

普通類中的成員函式一開始就可以建立

類模板中的成員函式在呼叫時才建立

所以成員函式類外實現的時候,一般不分開寫

類模板中成員函式建立時機是在呼叫階段,導致分檔案編寫時鏈結不到

解決:解決方式1:直接包含.cpp原始檔

解決方式2:將宣告和實現寫到同乙個檔案中,並更改字尾名為.hpp,hpp是約定的名稱,並不是強制

#include

#include

using

namespace std;

class

person

;person

(string n,

int ag)

private

: string name;

int age;};

template

<

class

t>

class

myarray

myarray

(const myarray &p)

這個地方不用寫初始化,因為已經在初始化了 hhh

this

->capacity=p.capacity;

this

->size=p.size;

this

->address =

new t[

this

->capacity]

;for

(int i=

0;i<

this

->size;i++)}

//過載複製操作=,做深拷貝

myarray&

operator=(

const myarray &p)

this

->capacity=p.capacity;

this

->size=p.size;

this

->address =

new t[

this

->capacity]

;for

(int i=

0;i<

this

->size;i++

)return

*this;}

t&operator

(int index)

void

insert

(const t& val )

this

->address[

this

->size]

=val;

this

->size++;}

void

delete()

this

->size--;}

intgetcapacity()

intgetsize()

~myarray()

}private

:int capacity;

int size;

t *address ;};

intmain()

類模板 模板類

下面定義的是類模板,用int例項化t後成為模板類。例項化類模板的語法 類名 模板實參表 結合下例即 array就是將類模板array例項化為模板類的語法。類模板 include using namespace std templateclass array array t operator int ...

類模板和模板類

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

類模板與模板類

1.類模板與模板類的概念 什麼是類模板乙個類模板 也稱為類屬類或類生成類 允許使用者為類定義一種模式,使得類中的某些資料成員 默寫成員函式的引數 某些成員函式的返回值,能夠取任意型別 包括系統預定義的和使用者自定義的 如果乙個類中資料成員的資料型別不能確定,或者是某個成員函式的引數或返回值的型別不能...