类模板

在编译阶段,类名不产生符号。

1.类模板的特例化:类模板的完全特例化和类模板的部分特例化

//类模板的完全特例化
template<>
class A<int,double>
{
   int a;
   double b;
};

//类模板的部分特例化
template<typename T>
calss B<int,T>
{
    int a;
     T  b;
};

2.同一模板实例化的两种不同类型也可以赋值拷贝,需要自己实现成员函数的模板,这时候需要声明一个类是另一个类的友元,这里是一对多的友元关系
这里写图片描述
3.当我们自己实现了拷贝构造函数的模板之后,可以实现不同类型的拷贝构造,这种模板可以和普通的同种类型的拷贝构造共存,但是这种自己实现的拷贝构造函数只能接收不同类型,当它实现同种类型的构造拷贝的时候就会出错。
这里写图片描述

4.只有先有模板,才能进行实例化,在我们进行实例化之前先看我们是否有相应的模板。

5.类模板,函数模板,成员方法模板都有特例化的版本.

6.普通的成员方法,成员方法模板,模板的特例化可共存,他们三者之间功能不会重叠,各自实现自己的功能。

  1. `
//E实例化的栈是原模版的友元
template<typename  E>
 Friend  class  stack;

1)类模板的友元声明:
这里写图片描述

2)普通类的友元声明:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值