65,211
社区成员
发帖
与我相关
我的任务
分享
class Base
{
public:
void fun1()
{
cout<<"Base fun1"<<endl;
}
void fun2()
{
fun1();
}
};
class Derived: public Base
{
public:
void fun1()
{
cout<<"Derived fun1"<<endl;
}
};
void main()
{
Derived d;
d.fun2();
return;
d.fun1();//这样调用时会发生覆盖,子类Derived中函数fun1()覆盖父类的fun1().输出:
Base fun1
d.fun2();//就是调用Base::fun2()函数,而fun2中调用的就是Base::fun1()了,这里不发生什么覆盖,因为在Base::fun2()中可见的是Base::fun1()