#include <iostream>
using namespace std;
// 类模板 类型参数化
template<typename T>
class ClassTemplateDemo {
public:
ClassTemplateDemo() {}
ClassTemplateDemo(T i) {
this->i = i;
}
~ClassTemplateDemo() {}
public:
T getI() {
return i;
}
void setI(T i) {
this->i = i;
}
protected:
private:
T i;
};
void test(ClassTemplateDemo<int>* pClassTemplateDemo) {
cout << "i: " << pClassTemplateDemo->getI() << endl;
}
void test(ClassTemplateDemo<char>* pClassTemplateDemo) {
cout << "i: " << pClassTemplateDemo->getI() << endl;
}
void main01() {
//ClassTemplateDemo obj; // error 错误 C2955 “ClassTemplateDemo” : 使用 类 模板 需要 模板 参数列表
ClassTemplateDemo<int> obj1;
ClassTemplateDemo<char> obj2;
obj1.setI(100);
cout << "i: " << obj1.getI() << endl;
obj1.setI(200);
test(&obj1);
system("pause");
}
template<typename T>
class ChildForClassTemplateDemo : public ClassTemplateDemo<T> {
public:
ChildForClassTemplateDemo(T i, T c) : ClassTemplateDemo<T>(i){
this->c = c;
}
protected:
private:
int c;
};
template<typename T>
void test(ClassTemplateDemo<T>* pBase) {
cout << "test<> i: " << pBase->getI() << endl;
}
void main() {
ChildForClassTemplateDemo<int> obj1(1, 2);
ChildForClassTemplateDemo<char> obj2('i', 'j');
test(&obj1);
test<>(&obj1);
test<>(&obj2);
system("pause");
}
C++类模板基础Demo
最新推荐文章于 2023-04-27 20:22:25 发布
本文展示了C++中类模板的使用,包括如何创建、初始化和操作模板类。同时,解释了模板类的继承,并通过示例演示了基类指针指向派生类对象的多态性。主要涉及类模板、构造函数、成员函数以及模板继承的概念。
986

被折叠的 条评论
为什么被折叠?



