请在这里概述您的问题C++中,基类protected能给子类直接调用??

公有继承。也就是说,基类自己都不能直接调用自己的protected成员,而子类却可以直接调用?... 公有继承。

也就是说,基类自己都不能直接调用自己的protected成员,而子类却可以直接调用?
展开
 我来答
欢乐多Ek
2013-07-28 · TA获得超过478个赞
知道小有建树答主
回答量:477
采纳率:0%
帮助的人:417万
展开全部
还在纠结这个问题。。。。

基类自己的private,public,protected ,在类中是无限制的,不管函数还是变量都随便调用,只不过这些调用仅限于类中定义的函数,但是在类外面,也就是类的使用者是无法调用protected ,private,但是能调用 public ,在类外面的意思就是其他使用者创建了一个该类的实例(不是类中成员函数里或者是友元函数里),它 . 的话是没办法调用protected 和private成员的。

但是基类由public继承派生出的子类是可以直接调用protected成员的,不管是函数还是变量。但是子类是无法调用private成员。

基类由private派生出的子类是无法调用父类任何东西的,因为父类所有成员对子类都是private的。

基类由protected派生出的子类和public一样,但是对于子类的使用者,所有由基类继承而来的东西都无法访问,因为基类所有东西都变成了protected。

总之你记住private是最封闭的,子类外界都无法访问,但是类本身可以访问。
protected是次封闭的,子类和本身可以访问,但是外界无法访问。
public是最开放的,子类外界本身都可以访问。

这些方面建议看看书,书上讲的详细多了,多揣摩自然就理解了。
追问
这就错啦。原理上子类可以间接访问基类的private,只是实际操作上程序员分工合作写代码,一般都是子类无法访问基类。

还有,真心不用说这么多,我的问题很简单,就是我写一段代码,里面有基类,子类。然后我想问基类protected如何能被调用?

基类是直接调用它还是间接调用它

子类是直接调用它还是间接调用它?

好了,问题就这么简单
追答
基类是可以直接调用也可以间接调用。
在public继承下子类可以直接调用也可以间接调用。
在protected继承下子类可以直接调用也可以间接调用。
在private继承下子类无法调用。

还有所谓的间接访问基类的private就是所谓的接口技术,当然多说无益,网上书上都有。
百度网友746d508
2013-07-28 · TA获得超过578个赞
知道小有建树答主
回答量:215
采纳率:0%
帮助的人:178万
展开全部
- 声明 private protected public
继承
private x x x
protected x o o
public x o o

类外调用 x x o

由上图可见protected和public的区别:
在类外调用时,可以调用public成员,但是不能调用protected成员
基类自己当然可以调用自己的成员啦。
你确定基类是在类里面调用的吗?
在类外面,不管子类,父类都不能调用protected成员
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
希访曼B5
2013-07-28 · TA获得超过109个赞
知道小有建树答主
回答量:137
采纳率:0%
帮助的人:112万
展开全部
PROTECTED是基类本身可以用, 子类也可以用,外面不能用
PRIVATE是基类自己用,子类都不可以用,外面不能用
PUBILC是基类能用,子类能用,外界也能用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式