VehicleEquationOfMotion

VehicleEquationOfMotion

#include <iostream>

class EquationOfMotion
{
    public:
        // other attributes
        virtual void findNextTimeStep() = 0;
};

class SystemModel
{
    public:
        EquationOfMotion* p_eom;
        // other atributes
        SystemModel(EquationOfMotion* new_p_eom)
        {
            p_eom = new_p_eom;
        }
};

class VehicleEquationOfMotion: public EquationOfMotion
{
    public:
        VehicleEquationOfMotion(...){/* initialise attribute*/}
        virtual void findNextTimeStep(){}
};

class Vehicle: public SystemModel
{
 // ???? Implementation ?????
}


VehicleSystemModel的一种特殊形式,其中p_eom指向VehicleEquationOfMotion

我想初始化VehicleEquationOfMotion的一个实例,并在p_eom中指向它Vehicle。我希望仅在Vehicle范围内定义它,同时不要使用堆。
甚至可以在不使用堆的情况下将VehicleEquationOfMotion对象驻留在Vehicle中吗? (如果没有,请建议设计哪里出了问题)。

可能会有所帮助:我考虑过this问题中的实现,但遇到了麻烦(请参阅问题)。

最佳答案

如果我正确回答了您的问题,请按照以下步骤操作:

  class FooChild : public FooParent
  {
  public:
      FooChild (int pX):m_BarChild(pX), FooParent(&m_BarChild) // point p_barPar to instance of BarChild (i.e. m_BarChild)
      {
      }
  private:
      BarChild m_BarChild; // instance of BarChild resided in the stack(not the heap) and is local to FooChild
  }

09-27 10:42