我们如何将 ostream 函数实现为 class 的成员函数,而不是友元函数,以便 i 可以用作虚函数?

How can we implement ostream function as member function of class ,and not as friend function so that i can be used as virtual function?

我想使用基 class.How 的朋友 ostream& 函数显示派生对象 class 的详细信息,我们可以做到吗?如何创建成员函数而不是 class 以便它可以用作虚函数并用于显示派生对象的详细信息 class.

流插入器将流作为其第一个参数,因此当插入器是成员函数时,它是流 class 的成员,而不是您正在编写的 class 的成员。所以它不能是你的 class 中的虚函数。但是它可以调用你class中的虚函数。

class my_class {
    virtual std::ostream& put(std::ostream& out) const {
        out << "here we go!\b";
    }
friend std::ostream& operator<<(std::ostream& out, const my_class& my_object);
};

std::ostream& operator<<(std::ostream& out, const my_class& my_object) {
    my_object.put(out);
}