gpt4 book ai didi

c++ - protected ifstream 成员

转载 作者:行者123 更新时间:2023-11-28 08:25:03 24 4
gpt4 key购买 nike

我即将完成我的第一个 OOP 项目,它来自 C 语言背景。我想知道与我在基类中用于打开文件的某些 ifstream 对象相关的设计问题。之后我想使用相同的流来由派生类做进一步的操作。我只将这个成员定义为 protected 成员,这样我就可以在派生类中访问它, protected 破坏了封装(我想养成良好的习惯),我应该定义一些 getter 函数来返回对流对象的引用吗?由于 ifstream 对象不可复制,这可能是个问题,我首先看到...

最好的,乌穆特

最佳答案

protectedpreserving 封装的理想选择,如果派生类具有与基类相同的 I/O 功能是您设计的组成部分。

封装并不意味着一切都必须是private,它意味着给定类的每个数据或代码成员仅对最小的类用户可见,以实现类的设计目的。换句话说,不要仅仅因为这样更容易编写代码就将所有内容都公开

如果您想将基类和派生类的 I/O 函数公开给层次结构之外的代码,则只需要一个 public getter。顺便说一句,返回引用并不意味着任何拷贝。

关于c++ - protected ifstream 成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4337228/

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