C++入门(4)

这篇博客深入探讨了C++中的继承,包括继承的三种方式(public、protected、private)及其对子类访问属性的影响,以及构造析构顺序。还讨论了同名成员函数和变量的处理,赋值兼容性原则,并介绍了虚继承和虚基类的概念,解决菱形继承问题的方法。
摘要由CSDN通过智能技术生成

欢迎加入QQ:498903810 一起交流、讨论知识,里面有大佬,也有小白,天下码农一家亲,大家一起讨论进步。

细说继承

感觉上一篇博客对于继承说的不够详细,所以我在这一篇再详细的说一下继承。

现在给大家详细说一下继承的方式:public、protected、private。

public (父类访问级别) protected (父类访问级别) private (父类访问级别)
public (继承方式) public protected
protected (继承方式) protected protected
private (继承方式) private private

在来介绍以下单个类的访问控制:

public:修饰的成员变量方法,在类的内部类的外部都能使用。

protected:修饰的成员变量方法,在类的内部使用,在继承的子类中可以使用,不能在类的外部使用。

private:修饰的成员变量方法,只能在类的内部使用,不能在类的外部使用。

C++中的继承方式会影响子类的对外访问属性。

public继承:父类成员在子类中保持原有访问级别。

protected继承:父类中public成员会变成protected

​ 父类中protected成员仍然为protected

​ 父类中private成员仍然为private

private继承:父类成员在子类中变成private成员。

父类private成员在子类中仍然存在,但是却无法访问,无论那种方式继承,派生类(子类)都不能直接使用基类的私有成员。

继承主要影响父类的属性在子类的子类的是否可以访问。如果是public继承,子类的子类(孙子类)仍然可以从子类里继承得到父类的属性,并且可以访问且类外也可以访问,如果是protected继承那么子类外将不可以访问。但是仍然可以让孙子类去继承子类在孙子类内去使用,在孙子类外不能访问。如果是private继承,那么子类里可以使用,但是子类的类外不能使用,且孙子类继承子类之后不能访问父类的属性和方法。

差不多就是这些了,继承方式影响的不仅仅是子类,还会对孙子类类有影响。

大多数继承都是public继承

子类、父类、子类普通成员变量的构造析构顺序

构造顺序:父类构造—子类成员变量构造—子类构造

析构顺序:子类析构—子类成员变量析构—父类析构


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值