以下代码产生“未定义符号”错误。如何对其进行修改才能正常工作?
我正在尝试创建一个无论数据类型如何都可以打印数据的界面。派生的类确定要打印的数据的类型。
template<typename T>
class Base {
T data_;
public:
friend std::ostream &operator<<(std::ostream &, const Base<T> &);
};
template<typename T>
std::ostream &operator<<(std::ostream &os, const Base<T> &) {
// ...
return os;
}
class Derived : public Base<int> {
};
Derived d;
std::cout << d << '\n';