它说,公有继承时,派生类可以访问,其他类不能访问。那不就跟子类调用基类public成员一样了么?
还有,基类的所有成员,当然只能由基类自己或者派生类来调用。其他类本身就不能来调用的嘛,这种设定有何意义?
子类不是可以调用基类public成员么,然后public再调用private, 这样不就调用了基类private了?
那基类怎样访问自己的protected呢
呵呵,public直接调用private的话,所有外部访问全部都能”访问“private了,那private存在的意义是什么?
基类自己的所有数据自己访问是无限制的。
OOD的最大特点就是封装和继承,封装也就是外界无法直接访问private和protected成员,只给外界留出了public接口,借由public接口来访问private和proteced成员,用以限制外部访问,就好像你只需要一个遥控器就能控制整个空调的开关,温度的升降而不用去管其内部细节。
而protected存在的意义是当我不想向外部暴露某个函数或者成员变量,但是我又想让派生类知道和访问这个成员,就将其用protected标志,就好比
你爹有两笔存款,一笔是他养老用的,一笔是留给你买房的,养老用的这部分钱你肯定不能拿而且大概你也不知道有多少钱,但是给你买房用的你就可以随便拿,如果你连养老用的这部分钱都拿了那你就是不肖子了,但是你爹可以随便动给你买房的钱(因为钱是他赚的)。当然,不管是养老用的钱还是给你买房用的钱,外人都不能动而且也不知道。
晕啊 您确定您说的是对的?刚刚有人说,子类是可以间接来访问基类private的
追答呵呵,我说的是 “外界无法直接访问private和protected成员” 啊,再把上面的看看吧,这理解起来确实有些困难,可能第一段有误解吧,我只是调侃的说法,意思是你说法中的”调用“和“public调用”是完全不一样的概念,public调用是接口调用,而正常调用是直接调用数据成员。
本回答被提问者采纳c++中,类的protected究竟有什么作用?
C++中,类的protected成员具有多重作用。详细解释:1. 封装性的增强:在C++中,类的成员变量和成员函数可以被声明为public、protected或private。当成员被声明为protected时,它们对类的外部是不可见的,但类的派生类可以访问这些成员。这使得类能够更精细地控制其内部数据的访问,增强了封装性。2. 继承中...
C++中,类的protected究竟有什么作用?
protected专门就是为继承(子类)设计的 用public继承,基类所有的访问标识在子类不变, protected还是protected 。 C++编程思想中是这么说的,public意味着随后的定义对所有人都适用;private意味着除了该类型的创建者和该类型的内部成员函数之C++中,类的protected究竟有什么作用?
C++中,类的protected究竟有什么作用?
C++中的protected关键字,其核心作用在于支持类的继承。当一个类的成员被声明为protected时,它允许其子类(继承自该类的类)可以直接访问这些成员,保持了基类的特性在子类中的可见性和可操作性。与public成员不同,public成员的访问权限对所有对象开放,无论是创建者还是外部代码。而private成员则仅限于...
c++类中的protected什么时候用
2.protected成员可以被派生类(类内)访问。
C++类的访问修饰符public、protected 和 private
对于protected成员,子类可以访问,但不允许修改,这是因为保护成员是为了让子类继承父类的功能,同时允许子类对特定部分进行自定义。公共成员则允许外部和内部自由访问,但通常只用于对外提供服务,隐藏了实现细节。为了允许外部访问私有成员,可以采用友元函数的机制。友元函数可以访问类的私有和受保护成员,但...
C++类的三种继承方式:public\/protected\/private
C++语言通过public、protected、private三个关键字来控制成员变量和成员函数的访问权限,也就是可见性。此外,C++提供了三种继承方式:公有继承(public)、保护继承(protected)、私有继承(private),这三种方式分别改变了基类成员的访问属性。1、公有继承 公有继承的特点是,基类的公有成员和保护成员在...
c++protected是什么意思
C++:protected访问说明符 。一个类自身的对象是可以访问protected的成员的 ,protected类型的成员在一个类中与pravite类型的成员性质亦一样的,只是在派生继承时性质不同,pravite不能被派生出来的类(也就是子类)调用(访问),而protected是可以被派生出来的类调用的。protected专门就是为继承(子类)设计...
在c++中, private 和protected 的区别?
private私有成员,只用于类的内部,就好比你在外面嫖娼,谁都不能告诉,哪怕是你儿子你也不能告诉!protected保护成员,用于类的内部和继承类,就好比你的家产,可以继承下去
C++:protected访问说明符
用public继承 那么基类所有的访问标识在子类不变 protected还是protected protected只有类本身 和类的子类可以访问,对象是无法访问的!除了在继承上 他跟private没有任何区别!private 子类也将不能访问!跟你说了啊~~~ 只是在继承上不同 其他都一样的 private无法继承 也就是说子类也不能用基类的 ...
c++ 中 private和protected有什么区别?老觉得作用是一样的。郁闷...
private是将函数或数据声明为私有的 protected 是将他们声明为保护的 平时都可以通用 但是在类的继承方面 为了使继承类可以拥有基类的私有成员函数或数据 就在基类中将他们声明为保护的 即protected 但是他们在其他类看来还是私有的 即不能访问的 这样的好处是使继承类继承基类的私有成员也保护了其安全 即...