创建不同的子结构,用于扩展父结构的函数,并将子对象传递到另一个函数中。C++

Create diferent childs struct that expand a function of a parent struct, and pass the child object in another function. C++

提问人:Riellia Hionmet 提问时间:10/14/2023 更新时间:10/14/2023 访问量:36

问:

我正在使用函数的不同实现创建不同的子结构,从基本父函数开始。

我想要一个通用引用来调用另一个结构中 Child 的函数作为指针。 然后更改为另一个子结构并调用新子结构的函数。

struct State{
   virtual void Update(){
   }
};


struct IdleState : State{
    void Update (bool* var){
        //some code
    }
};

struct StateMachine{
    State* currentState;
    void Initialize(State* newState){
        currentState = newState;
    }
    void Update(){
        currentState.Update();
    }
};
C++ 虚拟继承

评论

2赞 john 10/14/2023
好吧,主要问题似乎是您的父函数没有参数,但您的子函数有一个布尔指针参数。因此,子函数与父函数没有关系。您可以更改函数以使其具有相同的参数吗?
0赞 john 10/14/2023
当然,另一个问题是,如果你有一个指针,你应该用它来调用一个成员函数,而不是。->.
1赞 Swift - Friday Pie 10/14/2023
currentState.Update()我不可能,它应该有.虚函数在这里没有参数->
2赞 Aconcagua 10/14/2023
如果派生类中的函数旨在覆盖基类函数,则添加关键字 - 在这种特定情况下 (),它会导致编译错误,因为它实际上不会由于参数不匹配而覆盖。overridevoid update(bool* var) override
1赞 n. m. could be an AI 10/14/2023
一般建议:当您想要覆盖虚函数时,请始终使用关键字,并始终启用编译器警告,以便在您忘记这样做时编译器会对您大喊大叫。override

答: 暂无答案