public是法定继承人,如果法定继承人公开继承了父类,那么父类的公库和个人银行
对于法定继承人是可以访问的,但是法定继承人不知道父亲的私生子。
公开继承时基类中各成员的属性不变,并且基类中的private被隐藏。派生类的
成员只能访问基类中的public/protected成员,不能访问private成员。派生类
的对象只能访问基类的public成员。
#include <iostream>
using namespace std;
class Base
{
public:
int public_mem;
protected:
int prot_mem;
private:
int pri_mem;
};
class Device :public Base //派生类的成员函数公开继承基类的所有数据,这时派生类就可以自己去访问基类的protect了,也就是父类的protect权限对于派生
//类是打开的,因此无论Base是公开亲自,还是带保镖去,还是偷偷摸摸去基类的受保护区域拿东西,只要是公开继承了,基类的受保护区域认识派生类,因此
//随便怎么访问。
{
public:
void fengwenBase(Base &base) //在类外定义的对象只能访问public1接口
{
base.public_mem = 33;
// base.prot_mem = 33; //在派生类的public定义一个基类对象,基类对象不能访问protect和private。
}
void fangwenDevice(Device &device) //派生类public继承之后,基类的protected就是派生的protected
{
device.public_mem = 32;
device.prot_mem = 11;
}
protected:
void fengwenBase_protected(Base &base)
{
base.public_mem = 33;
// base.prot_mem = 33; //在派生类的public定义一个基类对象,基类对象不能访问protect和private。
}
void fangwenDevice_protected(Device &device) //派生类public继承之后,基类的protected就是派生的protected
{
device.public_mem = 32;
device.prot_mem = 11;
}
private:
void fengwenBase_private(Base &base)
{
base.public_mem = 33;
// base.prot_mem = 33; //在派生类的public定义一个基类对象,基类对象不能访问protect和private。
}
void fangwenDevice_private(Device &device) //派生类public继承之后,基类的protected就是派生的protected
{
device.public_mem = 32;
device.prot_mem = 11;
}
};
class Device1 :protected Base //
{
public:
void fengwenBase(Base &base) //在类外定义的对象只能访问public1接口
{
base.public_mem = 33;
// base.prot_mem = 33; //在派生类的public定义一个基类对象,基类对象不能访问protect和private。
}
void fangwenDevice(Device1 &device) //派生类public继承之后,基类的protected就是派生的protected
{
//Device1.public_mem = 32;
//Device1.prot_mem = 11;
}
protected:
void fengwenBase_protected(Base &base)
{
base.public_mem = 33;
// base.prot_mem = 33; //在派生类的public定义一个基类对象,基类对象不能访问protect和private。
}
void fangwenDevice_protected(Device1 &device) //派生类public继承之后,基类的protected就是派生的protected
{
//Device1.public_mem = 32;
//Device1.prot_mem = 11;
}
private:
void fengwenBase_private(Base &base)
{
base.public_mem = 33;
// base.prot_mem = 33; //在派生类的public定义一个基类对象,基类对象不能访问protect和private。
}
void fangwenDevice_private(Device1 &device) //派生类public继承之后,基类的protected就是派生的protected
{
//Device1.public_mem = 32;
//Device1.prot_mem = 11;
}
};
void main()
{
Base base; //基类对象不能直接访问protected。基类对象只能访问公有成员
Device device; //派生类对象不能直接访问device
device.public_mem = 11; //基类成员对于派生类对象来说,只能访问公有成员
system("pause");
}