009模板类派生出模板类

#include<iostream>
using namespace std;
//A编程模板 类 
//模板类  类型参数化


//类模板的定义
//类模板的使用
//类模板 做函数参数

//模板类 
template <class T>
class A
{
public:
	A(T a)
	{
		this->a = a;
	}
public:
	void printA()
	{
		cout << "a: " << a << endl;
	}
protected:
	T a;
};

//从模板类 派生 模板类
template < typename  T,typename  T2>
class C :public A<T>
{
protected:
	T2 c;
public:
	C(T2 c, T a) :A<T>(a)//使用父类的初始化列表
	{
		this->c = c;
	}
	void printC()
	{
		cout << "a=" << a << endl;
		cout << "c=" << c << endl;
	}
};
int main(void)
{
	C<int,int>c1(1, 2);
	c1.printC();//调用子类的方法
	c1.printA();//调用父类的方法
	system("pause");
	return 0;
}
/*
 * 当继承的时候使用不同的数据类型 T1,T2的时候怎么写??
 * 当只有一个模板T的时候
 */

猜你喜欢

转载自blog.csdn.net/baixiaolong1993/article/details/89482599