使用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”中声明的私有(private)成员

最佳答案

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

(强调我的)



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

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

关于c++ - 使用保护和继承时无法访问在类中声明的私有(private)成员,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62040321/

10-12 06:25