读书人

怎么在g++中使用 template class

发布时间: 2012-06-09 17:16:42 作者: rapoo

如何在g++中使用 template class ?

不太熟悉g++,不知道如何使用template class,读大家帮忙,谢谢 !

首先我用了三个文件a.h\a.cpp\main.cpp,如下

//////////// a.h ///////////////////
template<typename T>
class X
{
public:
X();
int a;
};

//////////////// a.cpp ////////////////
#include "a.h"
template<typename T>
X<T>::X()
{
a=0;
}

////////////// main.cpp ////////////////////

#include <iostream>
#include "a.h"

X<int> x;

int main()
{
return 0;
}

我的编译这样的: g++ -o main a.cpp main.cpp

然后出现了这样的错误提示:
/tmp/ccqG1Evq.o: In function `__static_initialization_and_destruction_0(int, int)':
main.cpp:(.text+0x50): undefined reference to `X<int>::X()'

不知道是什么原因,希望大家可以解释一下,谢谢 !


[解决办法]
模板不支持分离编译,声明定义全写头文件里吧。
[解决办法]
实现写到头文件中

读书人网 >C++

热点推荐