C++函数重载,重写,重定义
转载自: https://www.cnblogs.com/MisterXu/p/10651889.html 目录 1 重载 2 重写 3 重定义 4 函数重载二义性 C++中经常会提到重载,除了重载,还有重写,重定义,下面对这三个概念逐一进行区分 1 重载 函数重载是同一定义域中(即同一个类中)的同名函数,但形参的个数必须不同,包括 参数个数,类型和顺序 ,不能仅通过返回值类型的不同来重载函数 #include<iostream> using namespace std; class BOX { void func(int a, int b, int c){} void func(int a, int b){} // 参数个数不同 void func(int c, int b, int a){} // 参数顺序不同 int func(int a, int b, int c){} // **返回值类型不同,不能说明是重载函数** }; int main() { BOX box; return 0; } 2 重写 在父类和子类中,并且函数形式完全相同,包括 返回值,参数个数,类型和顺序 , 父类中有 vietual 关键字,可以发生 多态 #include<iostream> using namespace std; class BOX { virtual