gpt4 book ai didi

c++ - 继承中的istream和ostream

转载 作者:太空狗 更新时间:2023-10-29 21:18:18 30 4
gpt4 key购买 nike

我有两个类:

class a{
friend istream &operator>> (istream&in, a&ob) { }
friend ostream &operator<< (ostream&out, const a&ob) { }
}

class b:public a{
friend istream &operator>> (istream&in, b&ob) { }
friend ostream &operator<< (ostream&out, const b&ob) { }
}

A 类效果很好。我可以读取和写入 a 类型的对象。 b 类继承了 a 类的所有内容并添加了一些新数据。在我的 b 类 istream 和 ostream 运算符中,有没有办法使用 a 类的输入/输出运算符来读写公共(public)字段?谢谢。

最佳答案

您可以通过将 ob 转换为父类(super class)的类型来重用运算符:

ostream &operator<< (ostream& out, const b& ob) {
// Output the parts common to a and b
out << static_cast<const a&>(ob);
// Do additional things specific to b
out << some_part_specific_to_b;
return out;
}

关于c++ - 继承中的istream和ostream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30471039/

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