c++多态性,多态,和重载

多态性分两个部分:

1.静态多态性:通过重载实现,同名不同参。

2.动态多态性:多态,子类覆盖父类方法,运行时根据指针的类型来决定最终执行的方法。即:虚函数。

 

重载是同名不同参,参数完全一样顺序不同也叫同名不同参。

参考: http://www.runoob.com/cplusplus/cpp-overloading.html

在同一个作用域内,可以声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同。您不能仅通过返回类型的不同来重载函数。

例如:

#include<iostream>

class Base1{

};

class Base2{

};

class Base3{

};


class TestStu{
public:
    void test(Base1 base1, Base2 base2, Base3 base3){
        printf("normal call \n");
    }

    void test(Base3 base3, Base2 base2, Base1 base1){
        printf("reverse call \n");
    }
};



int main(int argc, char* argv[]){
    Base1 b1;
    Base2 b2;
    Base3 b3;

    TestStu test;
    test.test(b1, b2, b3);
    test.test(b3, b2, b1);

        //编译报错,没有这个方法                                                                                                                                                                            
        //test.test(b2, b3, b1);                                                                                                                                                                            
}

运行结果:

normal call 
reverse call

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值