本篇介紹 C++ 的 class template,以下為 C++ 使用 class template 範例教學,
c++ template class 簡單版 (class)
c++ class template 類別樣板的範例如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23template<typename T>
class AAA {
public:
AAA(T data) {
mData = data;
}
void print() {
std::cout << mData << endl;
}
private:
T mData;
};
int main() {
AAA<int> a1(10);
a1.print();
AAA<std::string> a2("hello world!");
a2.print();
return 0;
}
輸出1
210
hello world!
進階版 (繼承)
根據上個範例,我們新增一個衍生類 BBB
繼承 AAA
,衍生類的建構子的寫法如下(呼叫父類的建構子), 要特別注意一下,1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33template<typename T>
class AAA {
public:
AAA(T data) {
mData = data;
}
virtual void print() {
std::cout << mData << endl;
}
protected:
T mData;
};
template<typename T>
class BBB : public AAA<T> {
public:
BBB(T data) : AAA<T>(data) {
}
void print() override {
std::cout << "data = " << this->mData << endl;
}
};
int main() {
BBB<float> b1(5.2f);
b1.print();
return 0;
}
輸出1
data = 5.2
其它相關文章推薦
C/C++ 新手入門教學懶人包
C++ virtual 的兩種用法
C/C++ call by value傳值, call by pointer傳址, call by reference傳參考 的差別