首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以在C++继承中使用“非私有”元素?如果没有怎么办呢?

是否可以在C++继承中使用“非私有”元素?如果没有怎么办呢?
EN

Stack Overflow用户
提问于 2019-10-19 06:44:18
回答 1查看 51关注 0票数 1

如果我想继承"BaseClass“,但我必须管理其中一个私人成员,我能用这样的方式”非私有“吗?:

代码语言:javascript
运行
复制
using BaseClass::private_member;

如果没有,当一些成员没有被标记为protected时,该怎么办?如果不可能,那就意味着我们不应该继承我们没有开发的类?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-19 07:44:27

如果我想继承"BaseClass“,但我必须管理一个私有成员,我能用这样的方式”非私有“吗?

不是的。私有成员不能由派生类管理。如果您认为必须管理基类的私有成员,那么某人的设计或实现是错误的。它可能是有缺陷的基类,但是要保持开放的心态--一定要考虑到设计中存在缺陷的可能性。(更好的做法是,假设该缺陷可能存在于您的设计中,直到证明并非如此为止。)

如果不是

,那么当一些成员没有被标记为应该被保护时,该怎么办?

首先,验证这个假设。是否应该将成员标记为受保护的,还是试图滥用基类?如果成员确实应该被标记为受保护的,那么要做的就是修复基类。如果基类不在您的控制范围内,请提交错误报告。

如果

是不可能的,那意味着我们不应该继承我们没有开发的类?

不,这意味着你不应该建立在一个有缺陷的基础上。(或者可能的话,这意味着您应该使用基类设计而不是相反的设计。)有很多实现良好的基类。为手头的工作使用正确的工具。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58461214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档