永发信息网

c++中如何使用类模板

答案:2  悬赏:0  手机版
解决时间 2021-03-20 01:45
在VC2010中添加是添加类还是新建项?
最佳答案
template<typename T>//方法模板
T add(T const&a,const T&b){//两个const限定等价
return a+b;
}//注意,这里没有分号,因为这是方法

template<typename T>//结构体模板
struct S{
T s;
};//注意,这里有分号,因为这是结构体

template<typename T>//类模板
class A{
public:
S<T> s;//使用了结构体模板
void set(T s0);
};//注意,这里有分号,因为这是类

template<typename T>//实现类里面的方法
void A<T>::set(T s0){//注意这一行的格式
s.s=s0;
}
//注意,这个方法只有到被使用时才会开始实例化,不过可以显式实例化让它一开始就实例化

int main(){
template A<int>;//显式实例化
template A<double>;
int a=1,b=2;
double c=3.3;
add(a,b);//正确
add(a,c);//错误,模板参数类型是严格匹配的,不可能进行隐式转换
A<int> a;//使用了类模板
a.set(5);
cout<<a.s.s;//输出5
}

以上为类型参数模板
下面为值参数模板
template<unsigned int N>
class bitset;
。。。
bitset<100> b1;

模板定做,即针对某一类型的参数特别处理,比如加法并不是对所有的类型都适用,对于char*类型就要定做下
//先定义模板
template<typename T>
class A{
public:
T s;
void show();
}
template<typename T>
void A<T>::show(){
cout<<s<<endl;
}
//然后模板定做
class B{}//定义一个类型
template<>//不要填入类型
class A<B>{//直接使用自己需要的类型
public:
B s;//相应改为自己需要的类型
void show();
}
void A<B>::show(){//注意格式,这里没有template语句
cout<<s<<endl;
}

模板参数可以有多个
template<typename T1,typename T2>
class A{}

只定做T2而不定做T1就叫局部定做,如:
template<typename T1>
class A<T1,T1>{}

template<typename T1>
class A<T1,B>{}
全部回答
template//方法模板t add(t const&a,const t&b){//两个const限定等价 return a+b;}//注意,这里没有分号,因为这是方法template//结构体模板struct s{ t s;};//注意,这里有分号,因为这是结构体template//类模板class a{ public: s s;//使用了结构体模板 void set(t s0);};//注意,这里有分号,因为这是类template//实现类里面的方法void a::set(t s0){//注意这一行的格式 s.s=s0;}//注意,这个方法只有到被使用时才会开始实例化,不过可以显式实例化让它一开始就实例化int main(){ template a;//显式实例化 template a; int a=1,b=2; double c=3.3; add(a,b);//正确 add(a,c);//错误,模板参数类型是严格匹配的,不可能进行隐式转换 a a;//使用了类模板 a.set(5); cout
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
优酷视频怎么慢放
大自然婚纱摄影怎么去啊,有知道地址的么
这2部手入手哪部好呀?
怀孕之前有减肥的必要吗
请拟一条以“注意交通安全”为内容的公益广告
江户川柯南什么时候变成工藤新一在第几集?
亮剑李云龙有没有俘虏楚云飞
农历2016年腊月二十二日下午6:25出生的女宝五
主题是理想与信念的画素描画该怎么画,
居然还有个傻子还说笑死我了
什么是抽样方案,什么情况下使用调整型抽样方
C++,根据sizeof(指针)的大小判断操作系统的
临夏直三亚自驾游开车几天能到
弘信元电气工程公司我想知道这个在什么地方
写一则有关“春风行动”的公益广告。
推荐资讯
爱钻死牛角尖的女人是什么性格
我国新疆的买买提准备到国外去学习长绒棉的种
脚有浮肿应该看什么科
Ferrata手表是什么含义啊这个品牌?
篮球规则:“有中枢脚,移动时,队员可跳起中
描述桂花树的树叶的作文六十个字
懒人听书开通免流量显示error是怎么回事?
举例我国五种纯种猪
法院诉讼借款人那利息是从好久开始算了?谢谢
英语形式中a是什么意思
果园喷灌用压力是多少的pvc灌溉管合适
老上海面包房这个地址在什么地方,我要处理点
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?