C ++的泛型编程和限制参数类型的技术探讨




模板概述
泛型是C++中的重要特性。据说,已经在C++社区中已经取代面向对象成为C++的主要编程泛型。STL和boost库等都广泛使用了泛型。
泛型,就是C++的模板机制。
模板可以看作是C++宏的衍生。宏,就相当于是文本文件中的替换。C++编译器在编译前,先把所有使用宏的地方,用宏的定义替换掉宏。
在Java,.net,ruby等现代语言中都没有宏这种语法的地位。
宏是另程序变得晦涩难懂的一个原因!我认为在程序中应该尽量避免使用宏!

模板也可以看作是一种模板。C++编译器在编译之前,将创建模板的具体类型的源代码,然后再编译成二进制代码。



模板技术

模板类的声明和定义,形如:
template class Manage{…全部内联函数实现!};


函数模版的定义,形如:
template
void trim(SequenceT &, const std::locale & = std::locale());

模板的特化
模板类的特化
1)首先定义基泛型:
template class Manage{…全部内联函数实现!};

2)然后定义特化的泛型:
#include 上面基泛型的文件
template<> class Manage
{…全部内联函数实现!};

特化的泛型必须自己实现所有基泛型定义的成员函数和静态成员。

模板类的成员函数的特化
如果我们希望特化的泛型继承绝大部分的基泛型的代码。
那么只需定义特化的成员函数即可!
在基泛型的定义后面加上特化成员函数:
template<>
void Manage::sayHello(void){
cout<<"B"< t<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值