fun(int a, int b)
void fun(int a)
注意 : 是重定义 , 不是重写 ; 重写 需要 为 父类 函数添加 virtual 关键字修饰 , 会有多态效果 ;
重定义 时...C2661: “Child::fun”: 没有重载函数接受 3 个参数 ;
该错误是编译阶段报的错误 , 编译根本通不过 ;
3、错误原因分析 - 函数重定义问题 : 子类覆盖父类函数名
错误原因分析...: 函数重定义 带来的问题 , 子类覆盖父类函数名 ;
函数重定义的函数名称覆盖问题 : C++ 编译器 发现 Child c 对象要调用 void fun(int a, int b, int c) 函数..., 子类中已经存在 fun 函数了 , 子类 会 覆盖 父类的函数名 , C++ 编译器只会在 子类查找 该函数 , 不会去父类 查找 ;
子类查找函数 : C++ 编译器 在 子类中找到了 void...: 没有重载函数接受 3 个参数 ;
4、正确调用函数的方法
在这种情况下 , 由于子类 重定义了部分 父类的重载函数 , 导致 父类的 函数名被覆盖 , 此时需要使用 域操作符 访问父类 被覆盖的函数