gpt4 book ai didi

c++ - 派生类实现虚函数时访问基类私有(private)成员

转载 作者:行者123 更新时间:2023-11-30 01:43:48 25 4
gpt4 key购买 nike

我对 C++ 的 OO 方面不是很有经验,我正在尝试移植一些代码并复习我的知识,但我遇到了问题。我有一个这样定义的类:


class ExtendedKalmanFilter
{
private:

double dt;


public:
ExtendedKalmanFilter(int states);

virtual VectorXd f(VectorXd x, VectorXd u);
virtual MatrixXd F(VectorXd x);
virtual VectorXd h(VectorXd x);
virtual MatrixXd H(VectorXd x);

~ExtendedKalmanFilter();
};

我有另一个继承 ExtendedKalmanFilter 并实现虚函数的类:


class KineticEnergyEKF : public ExtendedKalmanFilter {
public:
KineticEnergyEKF(int nstates) : ExtendedKalmanFilter(nstates)
{}


VectorXd f(VectorXd x, VectorXd u)
{
this->dt = 1.0; //ERROR: Apparently I have no access to dt
}
MatrixXd F(VectorXd x);
VectorXd h(VectorXd x);
MatrixXd H(VectorXd x);
};

Visual Studio 显示我无法访问 dt,但我可以访问 ExtendedKalmanFilter 中定义的其他函数。如何访问 dt

最佳答案

当您从一个基类继承时,它的所有私有(private)成员都不能被它的派生子类访问。

如果您需要将它们设为对外界私有(private),但派生类可以访问它们,请将此类成员设为protected

关于c++ - 派生类实现虚函数时访问基类私有(private)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37207684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com