模板编程中的几点问题

 

类模板中头文件和源文件分离的编译问题

1、在泛型编程时,

声明和实现要放置在一起

(因为某些编译器不支持分离)

2、非泛型编程

声明和实现分开

 

可以为模板指定默认类型

template<typename T=int>
class Stack{
}


Stack<>  stack;
//Stack<int> stack;
//stack is a stack for int

 

 

模板中放置非类型参数

template<typename T, int capacity>
class Stack{

...
private:
T elements[capacity];
int size;    
}

Stack<char,100>  charStack;

 

 

模板与继承

1、一个非模板类可以继承自一个模板类的实例类

2、一个模板类可以继承自一个非模板类

3、一个模板类可以继承自一个模板类

4、一个非模板类不可以继承自一个模板类

 

 

友元函数在模板类中的用法与非模板类中是一致的

 

类模板中可以定义静态成员,每个模板特化都有自己的静态成员拷贝(每个模板特化的静态成员是独立的)

posted on 2015-08-16 19:34  依风152  阅读(237)  评论(0编辑  收藏  举报