//类模板在继承中的使用
template<class T>
class Base {
T m_Name;
};
//class Son :public Base { //错误,必须知道T的内存才能指定空间
class Son1:public Base<int>{ // 不灵活
};
//想要灵活指定父类中T的类型
template<class T1,class T2>
class Son2 :public Base<T2> {
public:
T1 m_A;
};
int main() {
//让子类的T为string,子类的T1为int
Son2<int, string>s2;
system("pause");
return 0;
}
//类模板在友元中的使用
//先声明类和函数,防止编译器报错
template<class T1,class T2>
class Person;
template<class T1, class T2>
void printPerson(Person<T1, T2> p);template<class T1,class T2>
class Person {
//全局函数类外实现的声明
friend void printPerson<>(Person<T1, T2> p);
public:
Person(T1 name, T2 age) {
c++类模板
最新推荐文章于 2024-07-14 13:39:50 发布