#include <iostream>
#include <vector>
using namespace std;
class Game;
class Case
{
public:
Case(Game& x);
void functionWhichIsCalledWhenCaseIsPressed();
private:
Game &game;
};
class Game
{
public:
Game();
void doSomething();
void test();
private:
std::vector<Case> board;
};
Case::Case(Game& x) : game(x){
}
void Case::functionWhichIsCalledWhenCaseIsPressed() {
cout<<"Clicked"<<endl;
game.doSomething();
}
Game::Game() {
for (int i=0; i<10; i++)
board.push_back(Case(*this));
}
void Game::doSomething() { cout<<"click on game"<<endl; }
void Game::test() {
board[3].functionWhichIsCalledWhenCaseIsPressed();
}
int main() {
Game g;
g.test();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgR2FtZTsgCmNsYXNzIENhc2UKewogICAgcHVibGljOgogICAgICAgIENhc2UoR2FtZSYgeCk7CiAgICAgICAgdm9pZCBmdW5jdGlvbldoaWNoSXNDYWxsZWRXaGVuQ2FzZUlzUHJlc3NlZCgpOwogICAgcHJpdmF0ZTogCiAgICAgICAgR2FtZSAmZ2FtZTsKfTsKCmNsYXNzIEdhbWUKewoJCnB1YmxpYzoKICAgIEdhbWUoKTsKICAgIHZvaWQgZG9Tb21ldGhpbmcoKTsKICAgIHZvaWQgdGVzdCgpOyAKCnByaXZhdGU6CiAgICBzdGQ6OnZlY3RvcjxDYXNlPiBib2FyZDsKfTsKCkNhc2U6OkNhc2UoR2FtZSYgeCkgOiBnYW1lKHgpewp9CnZvaWQgQ2FzZTo6ZnVuY3Rpb25XaGljaElzQ2FsbGVkV2hlbkNhc2VJc1ByZXNzZWQoKSB7Cgljb3V0PDwiQ2xpY2tlZCI8PGVuZGw7IAoJZ2FtZS5kb1NvbWV0aGluZygpOyAKfQpHYW1lOjpHYW1lKCkgewoJZm9yIChpbnQgaT0wOyBpPDEwOyBpKyspCgkgICAgYm9hcmQucHVzaF9iYWNrKENhc2UoKnRoaXMpKTsKfQp2b2lkIEdhbWU6OmRvU29tZXRoaW5nKCkgeyBjb3V0PDwiY2xpY2sgb24gZ2FtZSI8PGVuZGw7IH0Kdm9pZCBHYW1lOjp0ZXN0KCkgewoJYm9hcmRbM10uZnVuY3Rpb25XaGljaElzQ2FsbGVkV2hlbkNhc2VJc1ByZXNzZWQoKTsKfQoKaW50IG1haW4oKSB7CglHYW1lIGc7IAoJZy50ZXN0KCk7IAoJcmV0dXJuIDA7Cn0=