C++中子类继承的父类的私有属性在子类中还是私有吗?

C++中子类继承的父类的私有属性在子类中还是私有吗?,第1张

公有继承时,基类的private成员派生类也不可用,基类的public和protected成员在派生类中可直接使用继承过来(变成派生类相应的public和protected成员)只有public成员在派生类外可以直接使用

保护继承时,基类的private成员仍为有私有基类的public和protected成员变成派生类的protected成员,这时在派生类外也不能直接使用原基类的public成员

私有继承时,基类的private成员仍为有私有基类的public和protected成员将变成派生类的private成员

你这样理解也可以,当父类有私有的方法和属性,子类是继承不到的,所以子类不能访问父类的私有方法和属性。java
特性,private:类中只要限定为private的成员,只能被这个类本身访问

你都说了这个成员函数如果是从父类继承的,那么并不矛盾,
子类只调用从父类继承来的成员方法,并没有直接访问父类的私有成员变量。
访问父类私有成员是这个方法的事,与子类无关。

子类不能继承父类的所有方法和属性,只能继承父类所有的非private(私有)的属性和方法,而private成员是不能被继承的。
打个比方:你能继承你爸的财产,但不能继承你爸的所有财产。因为你爸要养老,这是会把财产的一部分作为私有,不让你继承。 JAVA的继承也就这样。
父类中public,protected修饰的属性,方法可以继承,private修饰的属性和方法不能被继承。
有些编程语言支持多重继承,即一个子类别可以同时有多个父类别,比如C++编程语言;而在有些编程语言中,一个子类别只能继承自一个父类别,比如Java编程语言,这时可以利用接口来实现与多重继承相似的效果。
现今面向对象程式设计技巧中,继承并非以继承类别的“行为”为主,而是继承类别的“型态”,使得元件的型态一致。另外在设计模式中提到一个守则,“多用合成,少用继承”,此守则也是用来处理继承无法在执行期动态扩充行为的遗憾。
扩展资料
子类继承父类的方式
1、公有继承(public),公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的。
2、私有继承(private),私有继承的特点是基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这个派生类的子类所访问。
3、保护继承(protected),保护继承的特点是基类的所有公有成员和保护成员都成为派生类的保护成员,并且只能被它的派生类成员函数或友元访问,基类的私有成员仍然是私有的。
参考资料来源:搜狗百科-继承
参考资料来源:搜狗百科-继承性

私有的秘密parent、son都不能访问,只有friend才能访问。

在父类前声明子类,在父类中将子类作为友元类

class son;
class parent{
friend class son;
/  /
};
class son: public parent{
/  /
};


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13383773.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-25
下一篇 2023-07-25

发表评论

登录后才能评论

评论列表(0条)

保存