如果我想继承"BaseClass“,但我必须管理其中一个私人成员,我能用这样的方式”非私有“吗?:
using BaseClass::private_member;如果没有,当一些成员没有被标记为protected时,该怎么办?如果不可能,那就意味着我们不应该继承我们没有开发的类?
发布于 2019-10-19 07:44:27
如果我想继承"BaseClass“,但我必须管理一个私有成员,我能用这样的方式”非私有“吗?
不是的。私有成员不能由派生类管理。如果您认为必须管理基类的私有成员,那么某人的设计或实现是错误的。它可能是有缺陷的基类,但是要保持开放的心态--一定要考虑到设计中存在缺陷的可能性。(更好的做法是,假设该缺陷可能存在于您的设计中,直到证明并非如此为止。)
如果不是
,那么当一些成员没有被标记为应该被保护时,该怎么办?
首先,验证这个假设。是否应该将成员标记为受保护的,还是试图滥用基类?如果成员确实应该被标记为受保护的,那么要做的就是修复基类。如果基类不在您的控制范围内,请提交错误报告。
如果
是不可能的,那意味着我们不应该继承我们没有开发的类?
不,这意味着你不应该建立在一个有缺陷的基础上。(或者可能的话,这意味着您应该使用基类设计而不是相反的设计。)有很多实现良好的基类。为手头的工作使用正确的工具。
https://stackoverflow.com/questions/58461214
复制相似问题