【发布时间】:2013-11-13 15:13:04
【问题描述】:
不幸的是,我找不到关于我的以下问题的帖子。 我想写一个重载
class MyClass {
private:
...
public:
template <typename> void operator<<(T data);
};
CPP 文件:
template <typename T> void MyClass::operator<<(T data) {
...
return;
}
现在我想使用我的班级:
MyClass mc;
mc << "Test";
mc << 123;
但是我的 gcc 编译器不会编译它,给我以下错误消息:
undefined reference to `void MyClass::operator<< <char const*>(char const*)'
或者如果我使用 int 例如:
undefined reference to `void MyClass::operator<< <int>(int)'
我做错了什么???有人可以帮帮我吗?
【问题讨论】:
-
您在代码中指定 T 的位置?
-
关闭一个重复的问题然后不提供重复的链接是没有帮助的。
-
谢谢大家的回答!我将函数实现移到头文件中,它起作用了!
标签: c++ templates overloading operator-keyword