结果: 从结果中我们可以看出,子类可以定义父类中的同名成员。子类中的成员将隐藏父类中的同名成员,父类中的同名成员依然存在于子类中,通过作用域分辨符(::)可以访问父类中的同名成员
47-2.cpp
#include <iostream> using namespace std; class Parent { public: int mi; void add(int v) { mi += v; } void add(int a, int b) { mi += (a + b); } }; class Child :public Parent { public: int mi; void add(int a, int b,int c) { mi += (a + b + c); } }; int main() { Child c; c.mi = 100; c.Parent::mi = 1000; cout << "c.mi = " <<c.mi<< endl; cout << "c.Parent::mi = "<<c.Parent::mi << endl; c.add(1); c.add(100, 200); cout << "c.mi = " << c.mi << endl; cout << "c.Parent::mi = " << c.Parent::mi << endl; return 0; }结果:直接保红,说明子类中不能重载父类的同名函数 原因:子类中覆盖父类中所有的add函数,导致产生错误 解决:使用作用域分辨符访问父类中的同名函数