Я создал MyApp
класс, который наследуется от wxApp
и добавил к нему некоторые переменные компонента:
class MyApp : public wxApp {
GameBoard* gb;
Player* player;
bool lightTheme;
std::vector<wxBitmapToggleButton *> cardImages;
public:
MyApp();
virtual bool OnInit();
void displayImages(wxFrame *, wxGridSizer *);
void OnCardSelect(wxCommandEvent&);
};
, затем я установил их значения в MyApp::OnInit
:
void MyApp::OnInit() {
//...
player = new Player(1);
//...
}
и когда я использую Player
методы класса в функции MyApp::OnInit
, все работает нормально, но когда я использую его в функции события, я получаю странные результаты (например, размер empty std::vector<int>
объявлено в Player
класс возвращает 18446744073709551540).Функция события:
void MyApp::OnCardSelect(wxCommandEvent& event) {
std::cout << (player->getChosen()).size() << std::endl;
// above line only for debugging, getChosen() returns const std::vector<int>&, which should be empty, but it print strange result
wxBitmapToggleButton *selectedCard = dynamic_cast<wxBitmapToggleButton *>(event.GetEventObject());
player -> toggleChosen(int(selectedCard -> GetId()));
}
Что происходит с переменными компонента MyApp
после вызова OnInit
(с использованием IMPLEMENT_APP(MyApp)
), и где я должен объявлять и изменять значения этих переменных?