题目
定义一个基类Base,有两个公共成员函数fun1()和fun2(),如果公有派生出Derived类,Derived类中重载了基类的成员函数fun1(),没有重载基类的成员函数fun2(),如何在派生类的函数中调用基类的成员函数fn1(),fn2()?
源代码
#include "stdafx.h"
#include<iostream>
using namespace std;
class Base{
public:
void fun1(){ cout << "fun1"<<endl; };
void fun2(){ cout << "fun2"<<endl; };
};
class Derived:public Base{
public:
void fun1();
void fun3(){
Base::fun1();
fun2();
}
};
int _tmain(int argc, _TCHAR* argv[])
{
Derived d;
d.fun3();
return 0;
}
运行结果
解析
已知在Derived类中重新定义了基类的成员函数fun1(),而没有重新定义基类的成员函数fun2(),则在调用fun1时可通过Base::fun1();方法来调用,而调用函数fun2时则可以直接在派生类的公有成员函数中调用基类的公有成员函数即:fun2().