使用保护和继承时无法访问在类中声明的私有成员

使用protected成员时遇到一些问题。相关代码和我得到的错误如下。这些类具有所有必需的函数和变量。我刚刚总结了相关部分。我该怎么办?

MFS.h:

class MFS
{
protected:
    MatrixXd commandedLateral;
};

CSimulator.h:

class CSimulator : MFS
{
};

CSimulator.cpp:

void CSimulator::calculateactuator(MFS* mfs)
{
    actuator = -gain * mfs->commandedLateral(1,0);
}

错误C2248:'MFS :: commandedLateral':无法访问在类'MFS'中声明的私有成员

iCMS 回答:使用保护和继承时无法访问在类中声明的私有成员

protected成员只能通过派生类访问,即,不能通过基类MFS访问它。

(重点是我的)

仅可访问类的受保护成员

1)给该班的成员和朋友;

2)的任何派生类的成员and friends (until C++17) 该类,,但仅当该对象通过哪个类 受保护成员是派生类还是派生类 的派生类

例如,以下代码应该可以正常工作。

void CSimulator::calculateActuator(CSimulator* mfs)
{
    actuator = -gain * mfs->commandedLateral(1,0);
}
本文链接:https://www.f2er.com/2263287.html

大家都在问