我有一个类Game
,该类具有另一个类std::vector
的{{1}}。在此类Case
中,我有一个函数告诉我何时单击它。而且我想在按下Case
时向拥有Game
的对象Cases
发送信号。
在game.h中:
Case
如果是case.h:
class Game
{
public:
Game();
void doSomething();
private:
std::vector<Case> board;
};
因此,当调用class Case
{
public:
Case(Game &g);
void functionWhichIsCalledWhenCaseIsPressed();
private:
Game game;
};
时,我想调用函数functionWhichIsCalledWhenCaseIsPressed()
。
编辑:
我尝试过,但是我还需要从向量中创建一个案例...实际上,我的Game.h中有一个doSomething()
,但是我无法初始化...我尝试了{ {1}}但我有一个错误:
Case c;
编辑:谢谢,完成了!
答案 0 :(得分:1)
为此,您需要启用从 Stopped LAT LNG DAY
401218 True 22.6874 113.9487 2018-10-15
401219 True 22.6874 113.9487 2018-10-15
401220 True 22.6874 113.9487 2018-10-15
401221 True 22.6873 113.9487 2018-10-15
401222 True 22.6869 113.9483 2018-10-15
401223 True 22.6863 113.9479 2018-10-15
401224 True 22.6859 113.9476 2018-10-15
401225 True 22.6854 113.9471 2018-10-15
401226 True 22.6849 113.9468 2018-10-15
401227 True 22.6844 113.9463 2018-10-15
401228 True 22.6841 113.9457 2018-10-15
401229 True 22.6839 113.9449 2018-10-15
401230 True 22.6838 113.9438 2018-10-15
401231 True 22.6837 113.9428 2018-10-15
401232 True 22.6837 113.9417 2018-10-15
401233 True 22.6836 113.9409 2018-10-15
401234 True 22.6835 113.9400 2018-10-15
401235 True 22.6833 113.9392 2018-10-15
401236 True 22.6832 113.9387 2018-10-15
401237 True 22.6832 113.9384 2018-10-15
到其拥有的Case
的导航。一种方法是在每种情况下保留一个引用或指向所有者的指针,并在构造时初始化该引用:
Game
有了这些先决条件,您可以轻松地调用父级的函数:
class Game;
class Case
{
public:
Case(Game& x);
void functionWhichIsCalledWhenCaseIsPressed();
private:
Game &game; // <<<<-------------- reference to owner
};
这要求游戏初始化棋盘并向构造函数提供正确的参数:
Case::Case(Game& x) : game(x){
}
void Case::functionWhichIsCalledWhenCaseIsPressed() {
cout<<"Clicked"<<endl;
game.doSomething(); //<<<===== invoke the function of the owner
}