C++函数模板和类模板——DAY4

lei 

1.类模板的介绍:类模板和函数模板的定义和使用类似,有两个或多个类,其功能是相同的,仅仅是数据类型不同。

  类模板用于实现类所需数据的类型参数化;

  类模板在表示数组、表、图等数据结构时非常重要,可以实现数据类型和算法的分离。

2.类模板的使用:具体如下代码

  类模板的定义以及使用:

template<typename T>
class A 
{
public:
	A(T t)
	{
		this->t = t;
	}

	T &getT()
	{
		return t;
	}
protected:
public:
	T t;
};
void main()
{
//模板了中如果使用了构造函数,则遵守以前的类的构造函数的调用规则
	A<int>  a(100); //模板类是抽象的,需要进行类型具体化
	a.getT();
	printAA(a);
	return ;
}

3.类模板做函数参数:

void UseA( A<int> &a )
{
	a.printA();
}

4.从模板类派生出普通类

//结论: 子类从模板类继承的时候,需要让编译器知道父类的数据类型具体是什么(数据类型的本质:固定大小内存块的别名)A<int>
//
class B : public A<int>//要在这里对父类参数化,写在类名的后面
{
public:
	B(int i) : A<int>(i)
	{

	}
	void printB()
	{
		cout<<"A:"<<t<<endl;

5.从模板类派生出模板类

template <typename T>
class C : public A<T>
{
public:
	C(T c, T a) : A<T>(a)
	{
		this->c = c;
	}
	void printC()
	{
		cout << "c:" << c <<endl;
	}
protected:
	T c;
};

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值