C++ 压倒一切<&书信电报;C+中的运算符+;基类中的纯虚拟和每个派生类中的不同实现

C++ 压倒一切<&书信电报;C+中的运算符+;基类中的纯虚拟和每个派生类中的不同实现,c++,c++11,C++,C++11,我有一个给定的基类,它有一些实现,并且有两个派生类。我想覆盖cout操作符一个可能的解决方案如下。实现您的一个可能的解决方案如下。实现你的你的派生的类实际上并不是从基派生的。另外,请添加此运算符的实际用法和您得到的编译错误(该链接不存在)。是否有充分的理由让运算符执行这些操作。大多数函数都是在Base中定义的,每个派生类只重写两三个函数。我很抱歉,如果我对这个问题的措辞不清楚的话。很抱歉,我更正了链接。您的派生的类实际上不是从基派生的。另外,请添加此运算符的实际用法和您得到的编译错误(该链接不存

我有一个给定的基类,它有一些实现,并且有两个派生类。我想覆盖cout操作符一个可能的解决方案如下。实现您的
一个可能的解决方案如下。实现你的
你的
派生的
类实际上并不是从
派生的。另外,请添加此运算符的实际用法和您得到的编译错误(该链接不存在)。是否有充分的理由让
运算符执行这些操作。大多数函数都是在Base中定义的,每个派生类只重写两三个函数。我很抱歉,如果我对这个问题的措辞不清楚的话。很抱歉,我更正了链接。您的
派生的
类实际上不是从
派生的。另外,请添加此运算符的实际用法和您得到的编译错误(该链接不存在)。是否有充分的理由让
运算符执行这些操作。大多数函数都是在Base中定义的,每个派生类只重写两三个函数。我很抱歉,如果我对这个问题的措辞不清楚的话。我更正了链接,对不起;如果用户想要虚拟分派,它必须是成员函数!的确如果用户想要虚拟分派,它必须是成员函数!
class Base
{
public:
    // Various functions, as expected
    virtual friend std::ostream& operator<<(std::ostream& stream, const Base& base) = 0;
    // More functions, members, all those things
}
class DerivedOne
{
public:
    std::ostream& operator<<(std::ostream& stream, const Base& base)
    {
    stream << base._someData << "\t" << "first desired print statement: "  << base._otherData;
    }

class DerivedTwo
{
public:
    std::ostream& operator<<(std::ostream& stream, const Base& base)
    {
    stream << base._someData << "\t" << "second desired print statement: "  << base._otherData;
    }
std::ostream& operator<<(std::ostream& stream, const Base& base) {
    base.my_print_function(stream);
    return stream;
}