我在使用C++中的模板進行編程時遇到了困難。C++中的模板編程
請考慮以下文件。
C.h
#ifndef _C_H
#define _C_H
template <class T>
class C {
public:
C();
virtual ~C();
}
#endif _C_H
C.cpp
#include "C.h"
template <class T>
C<T>::C() {
}
template <class T>
C<T>::~C() {
}
我嘗試在一個名爲main.cpp中實例化一個C的實例。
#include "C.h"
int main(int argc, char** argv) {
C<int> c;
}
我收到以下錯誤消息。
main.cpp undefined reference to `C<int>::C()'
我然後運行
g++ -o C.o C.pp
g++ -o main.o main.cpp
,但得到的錯誤
main.cpp: undefined reference to `C<int>::C()'
main.cpp: undefined reference to `C<int>::~C()'
我相信這可能是一個明顯的錯誤,但我在這個真正的初學者所以希望得到任何幫助。
謝謝!
強制鏈接:[C++ FAQ](http://www.parashift.com/c++-faq-lite/templates.html#faq-35.12)。 – 2010-09-22 00:55:58
感謝您的鏈接,格奧爾格。 – bandini 2010-09-22 01:29:06
'_C_H'是[保留](http://stackoverflow.com/questions/228783/what-are-the-rules-about-using-an-underscore-in-a-c-identifier)。 – GManNickG 2010-09-22 08:16:10