class Base
{
};
class Child :private Base //如果是protected也一样。
{
};
那么 Child c; Base b=c;这是不允许的。Base b=c;的意思是把c中的基类的对象赋值给b,但此时Child中的基类对象是private不能被访问。
如果改成public就可以。
在私有继承中,我知道派生类对象,有什么办法可以访问到其基类的对象么? 当然可以,因为它的内存 在派生类对象里呀。
#include <stdio.h>
#include <iostream>
using namespace std;
class Base
{
public:
int s;
Base():s(1000){};
void test(){cout <<s<< " base" << endl;}
};
class Child :private Base
{
};
int main()
{
Child c;
Base *b=reinterpret_cast<Base*>(&c); //强行转换一下。
b->test();
getchar();
}