gpt4 book ai didi

c++ - 如何确保继承类正在实现友元函数(ostream)?

转载 作者:行者123 更新时间:2023-12-05 01:03:45 24 4
gpt4 key购买 nike

我宁愿实现一个non-friend函数,直接将函数标记为virtual。

但我现在想确保一组特定的类实现重载

friend std::ostream& operator << (std::ostream& os, MyClass& myClass);

我发现没有其他方法可以将它直接链接到我的类(class)。 (实现运算符的其他可能性是将其移到我的类(class)之外,没有 friend )

语法大师,我有什么方法可以正确执行此规则吗? (让 child 覆盖 << ostream 运算符)

编辑 - 以下主题的相关主题:

Overloaded stream insertion operator (<<) in the sub-class

virtual insertion operator overloading for base and derived class .

最佳答案

您可以创建一个纯虚方法 - 这将需要继承的类来重载它,然后让 friend 输出运算符调用它。例如:

class MyClass {
public:
virtual ~MyClass();
virtual void output( std::ostream &os ) const = 0;

friend std::ostream& operator << (std::ostream& os, const MyClass& myClass)
{
myClass.output( os );
return os;
}
};

关于c++ - 如何确保继承类正在实现友元函数(ostream)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73557743/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com