c++ - 使用父类的重载方法

标签 c++ operators overloading

我有两个类(class):父亲和儿子。儿子继承了父亲。

两者都在重载 ostream 运算符。

class Father {
public:
    friend ostream& operator<<(ostream& os, Father& v); //prints "father"
};

class Son : public Father {
public:
    friend ostream& operator<<(ostream& os, Son& v); // prints "son"
};

有没有办法,我可以从儿子那里调用父亲的“<<”?

我希望 Son 最终会打印:“父子”

最佳答案

你可以static_castSon&Father&:

class Son : public Father {
public:
    friend std::ostream& operator<<(std::ostream& os, Son& v) {
        os << static_cast<Father&>(v);
        os << "son";   
        return os;
    }
};

关于c++ - 使用父类的重载方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33867762/

相关文章:

c# - C# 中单个 AND 运算符的意义是什么?

c++ - 未检测到重载的运算符

perl - 重载字符串化和 utf8 标志

c++ - 向类添加复制构造函数

c++ - C++ 中的并发 TCP 服务器

c++ - 多次从第一行读取文本文件(C++)

c++ - 模板运算符似乎因歧义而失败

c++ - 在 C++ 中生成随机 float 不起作用(Visual Studio 2013)

c++ - 运行时已知大小的二维数组列表(或 vector )的声明

c - '!!' 是 C 中的现有运算符吗?