類模板實現乙個支援各種型別的陣列
類模板中成員函式建立時機
類模板中成員函式和普通類中成員函式建立時機是有區別的:
普通類中的成員函式一開始就可以建立
類模板中的成員函式在呼叫時才建立
所以成員函式類外實現的時候,一般不分開寫
類模板中成員函式建立時機是在呼叫階段,導致分檔案編寫時鏈結不到
解決:解決方式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.類模板與模板類的概念 什麼是類模板乙個類模板 也稱為類屬類或類生成類 允許使用者為類定義一種模式,使得類中的某些資料成員 默寫成員函式的引數 某些成員函式的返回值,能夠取任意型別 包括系統預定義的和使用者自定義的 如果乙個類中資料成員的資料型別不能確定,或者是某個成員函式的引數或返回值的型別不能...