模板类模板类H文件和CPP文件分离
时间:2023-03-28 04:44:01 | 来源:营销百科
时间:2023-03-28 04:44:01 来源:营销百科
模板类模板类H文件和CPP文件分离:大部分资料建议模板类的声明和实现都在.h文件中,这样能够保证正确链接。其实模板类也能够完成声明和实现分离,只是需要额外做一些处理。下面仍然以Stack为例:
//.h
template class T, int i class MyStack
{
T StackBuffer;
int cItems;
public:
void MyStack( void ) : cItems( i ) {};
void push( const T item ); T pop( void );
};
//.cpp
template class T, int i void MyStack T, i ::push( const T item )
{...}
template class T, int i T MyStack T, i ::pop( void )
{...}
//在.cpp文件的最后,增加模板声明,把有可能用到的参数组合都进行声明即可
template class MyStackunsigned int, 100;
template class MyStackfloat, 100;
...
注意:这样做的缺点是,由于进行了声明,会把每一个参数组合都编译,生成的文件会非常大。