C++-继承:基类与派生类的关系

成员函数的重定义和名字隐藏

基类的数据成员和成员函数在派生类中都有一份拷贝,派生类能够直接访问从基类继承而来的public和protected成员,且只能够通过这两类成员访问从基类继承而来的private成员。

派生类不仅可以添加基类没有的新成员,而且可以对基类的成员函数进行重定义或重载。重定义是指派生类可以定义与基类具有相同函数原型的成员函数(相同的返回类型、函数名、参数表),而重载则要求成员函数具有不同的函数原型。

需要指出的是,派生类对基类成员函数的重定义或重载会影响基类成员函数在派生类中的可见性,基类的同名成员函数会被派生类重载的同名函数所隐藏。

一般认为派生类与基类同名成员函数之间是一种重定义而非重载关系:
1、重载不会隐藏同名的其他成员函数;
2、重载是指相同作用域中的同名函数,而派生类与基类个自定义了一个唯一的作用域,二者是独立的。

基类成员访问

一个派生类对象时实际上由两部分构成:基类子对象和派生子对象。
派生类对基类成员的访问有以下几种方式:
1、通过派生类对象直接访问基类成员。public继承中,基类的public在派生类中也是public,可以被派生类对象的外部函数直接访问。

2、在派生类成员函数中直接访问基类成员,三中继承方式中基类的public和protected成员都可以被派生类的成员函数直接访问。

3、通过基类名字限定访问被重载的基类成员名。在派生类中被重载或重定义的基类成员,只有通过基类的类名限定才能访问。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值