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

C++ 使用受保护和继承时无法访问类中声明的私有成员,c++,variables,inheritance,member,protected,C++,Variables,Inheritance,Member,Protected,我在使用受保护的成员时遇到一些问题。相关代码和我得到的错误如下。这些类具有所需的所有函数和变量。我刚才总结了有关部分。我该怎么办 MFS.h: class MFS { protected: MatrixXd commandedLateral; }; CSimulator.h: class CSimulator : MFS { }; CSimulator.cpp: void CSimulator::calculateActuator(MFS* mfs) { actuator =

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

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::Commanded侧向”:无法访问类“MFS”中声明的私有成员。

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

(强调矿山)

类的受保护成员只能访问

1) 致该班级的成员和朋友

2) 任何派生类的成员
和朋友(直到C++17)
该类,但仅当 被访问的受保护成员是该派生类还是派生类 该派生类的

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

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