C++继承

父类的成员

public 公有继承的子类protected 保护继承的子类private 私有继承的子类
public 公有成员能够继承,继承后是public 公有成员能够继承,继承后是protected 保护成员能够继承,继承后是private 私有成员
protected 保护成员能够继承,继承后是protected 保护成员能够继承,继承后是protected 保护成员能够继承,继承后是private 私有成员
private 私有成员不能继承不能继承不能继承

1. class 的默认继承关系(就是缺省继承关系关键字,例如 class Child : Parent) private 私有继承, struct 的默认继承关系是 public 公有继承。

If no access level is specified for the inheritance, the compiler assumes private for classes declared with keyword class and public for those declared with struct.

2.对象只能调用其public部分的成员而不能调用protected和private部分的成员。protected和private成员在类内部成员函数中使用。

3.构造函数和析构函数不能继承(正所谓儿子无法继承父亲的生死)

4. 若子类Child重写(overwrite)了父类Parent的同名方法,则类Parent的实例调用的是类Parent的方法,类Child的实例调用的是类Child的方法;将类Child实例的指针指向类Parent的指针变量ptr,则通过ptr调用的是类Parent的方法;

5. 若定义了类Child的实例son,则通过son实例调用类Parent的方法的用法为:

 son.Parent::method(paramlist)

适用于method是父类Parent的公有成员,而子类 Child 保护或私有继承 Parent; 

6. 若子类与父类方法同名,但是参数列表不一致,在子类中调用父类方法,由于重写规则,导致编译出错。此时可以使用 using Parent::method; 语句,使父类方法在子类中可见。

参考材料:

Friendship and inheritance - C++ Tutorials

C++:继承访问属性(public/protected/private) - Tom文星 - 博客园

C++——子类调用父类方法 - 怪猫佐良 - 博客园

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值