c++(基类指针、多重继承与多继承)

本文介绍了C++中的基类指针特性,如何调用基类成员。接着讨论了多重继承的概念,通过例子展示了继承链的形成及函数调用。最后,探讨了多继承可能导致的问题,如二义性,以及如何处理这些情况。多继承在某些编程语言中并不推荐使用。
摘要由CSDN通过智能技术生成

一、基类指针

一般的,如果定义一个指向基类类型的指针,那么这种类型的指针具有如下特性:

  • 指向基类对象的指针可以指向其子类对象。
  • 如果子类覆盖了其基类中的函数成员,但通过基类指针所访问的成员仍然是基类的成员,而不是子类的成员

比如基类BaseClass拥有函数F,其子类ChildClass中覆盖了函数F,那么如下语句将仍然调用A的函数F:

BaseClass *aptr;    //基类类型的指针
ChildClass child;
aptr = &child;      //仍可以指向子类对象
aptr->F();          //但仍然调用基类的函数F()

二、多重继承

        我的理解就是基类生子类,子类再生子类。

例如下面三个类构成一个继承链:

Millimeter继承自Centimeter,Centimeter又继承自Meter。

//基类
class Meter
{
private:
    float dataMeter;
public:
    void setData(float m)
    {
        dataMeter = m;
    }
    float getMeter(){return dataMeter;}
    virtual float getData(){return dataMeter;}
    float dataSquare(){return getData()*getData();}
};
//子类
class Centimeter:public Meter
{
private:
    float dataCentimeter;
public:
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值