是否可以"unprivate" C++继承中的元素?如果没有怎么办?
Is possible to "unprivate" an element in C++ inheritance? What to do if not?
如果我想从"BaseClass"继承,但我必须管理其中一个私有成员,我可以用这样的东西"取消私有"它吗?
using BaseClass::private_member;
如果没有,当某些成员没有被标记为应有的protected
时该怎么办?如果不可能,这意味着我们不应该从我们没有开发的类继承?
如果我想从"BaseClass"继承,但我必须管理其中一个私有成员,我可以用这样的东西"取消私有"它吗?
不。私有成员不能由派生类管理。如果您认为必须管理基类的私有成员,那么某人的设计或实现是错误的。可能是基类有缺陷,但要保持开放的心态 - 一定要考虑缺陷在你的设计中的可能性。(更好的是,假设缺陷可能在你的设计中,除非证明不是这样。
如果没有,当某些成员未被标记为应有的受保护时该怎么办?
首先,验证此假设。是否应将成员标记为受保护,或者是否尝试滥用基类?如果确实应该将成员标记为受保护,那么要做的是修复基类。如果基类不受您的控制,请提交错误报告。
如果不可能,这意味着我们不应该从我们没有开发的类继承?
不,这意味着你不应该建立在有缺陷的基础上。(或者这可能意味着您应该使用基类设计而不是反对它。那里有很多实现良好的基类。为手头的工作使用正确的工具。
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 使用strcpy将char数组的元素复制到另一个数组
- 使用不带参数的函数访问结构元素
- 给定n个元素的m个集合.在C++中找到出现在最大集合数中的元素
- C++如何通过用户输入删除列表元素
- lower_bound()返回最后一个元素
- 基于多个条件处理地图中的所有元素
- 调整大小后指向元素值的指针unordered_map有效?
- 使用std::transform将一个范围的元素添加到另一个范围中
- 使用函数"remove"删除重复元素
- 具有最大子序列大小的序列,每个元素都相同
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- 如何将元素添加到数组的线程安全函数?
- 有没有办法将谓词中的元素偏移量传递给 std 算法?
- 我想访问std::unique_ptr中的一个特定元素
- 如何通过 getter 函数删除矢量的元素?
- 是否可以"unprivate" C++继承中的元素?如果没有怎么办?
- 如果我们无法从C++容器中删除元素,我们该怎么办
- make_heap() 函数参数 - 如果我不想包含某些元素怎么办?