为什么不可以通过派生类对象名访问基类的保护成员呢?

 我来答
17哥
2012-11-09 · 菩提只向心觅,何劳向外求玄
17哥
采纳数:244 获赞数:1230

向TA提问 私信TA
展开全部
只有public类型的变量才可以被该类的对象直接访问。基类的对象和派生类的对象都不能直接访问类的保护成员和私有成员。这也就是C++中类和struct的区别。C++类中不指定访问权限,默认是private的,而struct默认是public的。
另外,这里的不能访问实际上是编译器做的限制,如果能够推导出类的内存布局,可以直接利用C++中嵌入汇编代码直接修改任何私有或保护成员变量的值。
Storm代理
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
小浣熊快递
2012-11-21 · TA获得超过517个赞
知道小有建树答主
回答量:237
采纳率:66%
帮助的人:98万
展开全部
这里你大概是弄混了一些概念。
保护成员跟私有成员,只能在类内部访问,别管是基类的保护成员或者自己的保护成员,都不能用对象访问。
既然不能用派生类的对象访问基类的保护成员,派生类可以做什么,它可以在类内访问基类的保护成员。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ul0402206
2012-11-08 · TA获得超过505个赞
知道小有建树答主
回答量:301
采纳率:0%
帮助的人:303万
展开全部
因为基类的protected成员对于派生后就变成派生类的私有成员,只能在派生类中被访问而不能被派生类的对象直接访问
你可以在派生类中声明一个get方法来返回这个成员变量,如果是函数的话,你需要在派生类中声明一个public的函数来包装下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式