And*_*sta 1 c++ inheritance class
为什么班级母亲无法从班级孙女那里进入,如果班级女儿(孙女从哪个继承)继承了班级母亲,并且访问说明符设置为私人?我无法创建对象或指针.为什么?这种行为背后的逻辑是什么?如果我在孙女班中使用母亲物品会有什么问题?并且,连接到最后一个问题,为什么如果类女儿从类母亲继承并且访问说明符设置为PUBLIC或PROTECTED,我可以创建一个母对象到孙女类?这些问题不会回复给我吗?
#include <iostream>
#include <stdio.h>
using namespace std;
class mother
{
public:
mother(){};
};
class daughter : private mother
{
public:
daughter(){};
};
class granddaughter : public daughter
{
public:
granddaughter(){}; // ERROR
mother* mother; // ERROR
};
int main(void){return 0;}
Run Code Online (Sandbox Code Playgroud)
您可以创建mother指针和实例.但是,由于名称解析规则,mothertypename将引用私有基类.要解决这个问题,您可以使用完全限定类型名称::mother将类型称为非基类:
class granddaughter : public daughter
{
public:
::mother* mother; // NO ERROR
};
Run Code Online (Sandbox Code Playgroud)