派生类:使用流操作符在模板化基类中重载

时间:2018-10-21 08:39:15

标签: c++ templates operator-overloading

以下代码产生“未定义符号”错误。如何对其进行修改才能正常工作?

我正在尝试创建一个无论数据类型如何都可以打印数据的界面。派生的类确定要打印的数据的类型。

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';

0 个答案:

没有答案