可以看看下面这段代码:
#include <iostream>
using namespace std;
class Base
{
public:
virtual void fun_1(int i);
virtual void fun_3(int i)=0;
};
void Base::fun_1(int i)
{
cout << "Base Fun_1:" <<i <<endl;
}
class Drived: public Base
{
void fun_1(int i)
{cout << "Drived fun_1:" << i<<endl ;}
void fun_1(char* m)
{cout << "Drived fun_2:double :" << m<<endl;}
void fun_3(int i)
{cout <<"Drived fun_3:" <<i <<endl; }
};
void main()
{
Base *pb ;
Drived *pd;
pd =new Drived ;
pb = new Drived ;
pb->fun_1(1000.00);
pb->fun_3(200);
// pd->fun_1(100);//私有成员不能访问
// pd->fun_3(500);
system("pause");
return ;
}
用派生类初始化的基类对象,访问派生类重新实现的虚函数或者是纯虚函数(为派生类的私有成员),是OK的。但是派生类的对象不能访问!
但是如果Base的私有成员不能访问!