基类、派生类的同名函数

直接给出结论,便于以后查阅:

1、多个普通函数,同名时会重载

2、同一个类中的成员函数,同名时会重载

3、子类与父类的函数同名时,子类会覆盖掉父类所有的同名函数,如下例,子类的一个func_0( ),把父类的func_0( )和func_0(int)都覆盖掉了。

4、发生覆盖时,父类指针指向子类对象时,访问的全部都是父类的同名成员函数。

 

#include <QCoreApplication>
#include <stdio.h>


class Base
{
public:
    void func_0(void)
    {
        printf("base func_0\r\n");
    }
    void func_0(int a)
    {
        printf("base func_0(int a)\r\n");
    }


};

class Derive: public Base
{
public:
    void func_0(void)
    {
        printf("Derive func_0\r\n");
    }
};

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    Derive d;
    d.func_0();//输出:Derive func_0
    //d.func_0(2);//编译出错,子类中不存在func0(int)
    d.Base::func_0();//输出:base func_0
    d.Base::func_0(2);//输出:base func_0(int a)

    Base *pDerive = new Derive;
    pDerive->func_0();//输出:base func_0

    return a.exec();
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值