首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Templates应用技巧基础

2012-08-22 
Templates使用技巧基础模板使用技巧基础这篇文章主要记下实际工程中使用模板的一些基本技巧,其中主要包括t

Templates使用技巧基础
模板使用技巧基础

这篇文章主要记下实际工程中使用模板的一些基本技巧,其中主要包括typename关键字的使用,定义模板成员函数,定义嵌套类模板,双重模板类型参数(template template parameter),以及零值初始化的技巧。

?

一、关键字typename

关键字typename是C++标准化过程中被引入的,目的是告诉编译器模板类型参数或者其内的某个标识符是个类型。

template <typename T> void foo() {     T x = T();      // x has undefined value if T is built-in type } 

假定T并无默认构造函数时,x的初值就无法被正确初始化,进而引发未定义的行为。因此在定义class template时,一定要定义默认构造函数,初始化其内部成员。当然,如果T本身是内建类型时,如int, bool等, 当默认构造函数被调用后,其值就会被初始化为0。

?

小结:

?1. 当要操作一个取决于template parameter的类型名称时,应该在前面加typename关键字修饰。

?2. 嵌套类和成员函数也可以是模板。

?3. 赋值运算符的template版本并不取代默认赋值运算符。

?4. 把class template作为template parameter使用的技巧成为Template Template Parameter。

?5. Template Template Arguments必须完全匹配其对应参数。

?6. 当具现化一个内建类型的变量时,如果需要设定初值,必须明确调用其默认构造函数。

?

?

热点排行