多态性分两个部分:
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

326

被折叠的 条评论
为什么被折叠?



