c++ 继承与派生(2)——通过派生类的对象调用基类的函数

题目

定义一个基类Base,有两个公共成员函数fun1()和fun2(),如果私有派生出Derived类,如何通过Derived类的对象调用基类的函数fun1()和fun2()?

源代码

#include "stdafx.h"
#include
using namespace std;

class Base{
public:
	void fun1(){ cout << "fun1"<<endl; };
	void fun2(){ cout << "fun2"<<endl; };
};

class Derived:private Base{
public:
	void fun1(){ Base::fun1(); };
	void fun2(){ Base::fun2(); };
};

int _tmain(int argc, _TCHAR* argv[])
{
	Derived d;
	d.fun1();
	d.fun2();
	return 0;
}

运行结果

c++ 继承与派生(2)——通过派生类的对象调用基类的函数_第1张图片

解析

在私有继承情况下,为了保证基类的一部分外部接口特征能够在派生类中也存在,就必须在派生类中重新声明同名的成员。这里在派生类Derived中,重新声明了函数fun1、fun2,利用派生类对基类成员的访问能力,把基类成员函数的功能照搬了过来。最后在主函数里再通过类Derived的对象来访问fun1、fun2。

你可能感兴趣的:(c++)