我有一个很难得到这个工作C++重载运算符声明和定义问题
file: myclass.hpp
Class MyClass {
public:
template <class T>
MyClass &operator<<(const T &val);
};
file: myclass.cpp
template <class T>
MyClass &MyClass::operator<<(const T &val) {
...
}
我可以在一个对象编译这个没有问题,但是当其他功能尝试调用它,这个错误(每次使用< <)。
myclass.cpp: undefined reference to `MyClass& MyClass::operator<< <int>(int const&)'
我在做什么错了?
+1,主要是正确的,但只要您手动实例化将在应用程序中使用的所有类型,就可以在.cpp文件中实现您的模板定义。也就是说,定义后添加:'template class YourClass;模板类YourClass ; ...' –
2009-06-10 17:30:02