C++的继承

继承

子类继承父类的一切属性和方法,但private的属性和方法无法访问

可用例子证明,创建一个父类,父类创建一个私有属性,再创建一个公有的输出方法,子类继承父类,子类调用公有方法时,是可以输出父类的私有属性的,足以证明上述语句

初始化列表

继承绕不开初始化列表,最关键要记住,子类初始化时会同时调用父类默认的构造器,才可以彻底理解初始化列表。

当父类有常数,引用类型变量时,子类初始化会出现错误,因为常量和引用型变量都要在第一次初始化时赋值,而父类默认构造器并没有赋值,此时通过初始化列表,调用父类的有参构造器,就能解决问题。

类属性初始化的顺序与初始化列表无关,与在类中定义的顺序有关。

虚函数

前提:子类和父类有同样的方法签名的方法,但方法体不同,创建一个方法,该方法接受父类类型的参数,将子类或父类的实例作为参数输入这个方法,希望参数是子类时,可以调用子类方法,参数是父类时,可以调用父类方法,简单来说就是实现多态

如果仅是子类写一个和父类同样方法签名的方法,是无法实现上述要求,即多态的,需要用virtual修饰父类方法,同时可以用override修饰子类方法,帮助我们检查有无正确覆写

纯虚函数

拥有纯虚函数的类称之为接口,纯虚函数不同于正常虚函数,不用写方法体和{},用 “ = 0;”代替。

继承接口的类必须实现纯虚函数才能实例化。

纯虚函数和虚函数的联合使用,要想继承了接口的父类和子类能正确实现多态,父类还是要用虚函数。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值