C++泛型编程基础
2016-03-26 15:39
225 查看
泛型编程技术支持程序员创建函数和类的蓝图(即模板,template),而不是具体的函数和类。
定义模板:template <type>
1.函数模板
T代表一种不确定的数据类型。
example:
2.类模板
(1)类的声明
(2)构造器的实现
注意:构造器模板里的类型的名字不需要与在类声明里使用的那个保持一致,也可以这样:
3.容器和算法
能容纳两个或更多个值的数据结构通常称为容器。
创建一个特定类型的向量 vector
来源:《写给大家看的C++书》
定义模板:template <type>
1.函数模板
template <class T> void foo(T param) { //do something }
T代表一种不确定的数据类型。
example:
template <class T> void swap(T &a,T &b) { T tmp = a; a = b; b = tmp; }
2.类模板
(1)类的声明
template <class T> class MyClass { MyClass(); void swap(T &a,T &b); }
(2)构造器的实现
template <class T> MyClass<T>::MyClass() { //Initalize the attributes here. }
注意:构造器模板里的类型的名字不需要与在类声明里使用的那个保持一致,也可以这样:
template <class U> MyClass<U>::MyClass() { //Initalize the attributes here. }
3.容器和算法
能容纳两个或更多个值的数据结构通常称为容器。
创建一个特定类型的向量 vector
std::vector<type> vectorName; .....
来源:《写给大家看的C++书》