本文主要是介绍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
这篇关于c++多态性,多态,和重载的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!