Метод не видит других переменных и другие методы класса

225
29 сентября 2017, 19:02

Перегруженный метод не видит другие методы класса и публичные члены. Из-за чего может такое случиться?

    public:
        void End_Race();
        void Draw_Data(int);
        bool Get_Sum(Player*);
        bool Get_Bet(int);
        bool Get_Bet(int, Player*);
        void Menu_Script();
        bool New_Game();
        SDL_Surface* New_Frame();
        bool OnInit();
        void OnEvent(SDL_Event* Event);
        void OnLoop();
        void OnRender();
        void OnCleanup();
};

Метод Get_Bet(int) работает прекрасно, но метод Get_Bet(int, Player*) не работает.

bool Get_Bet(int pers, Player* player){
    SDL_Surface *menu_surf;
    menu *new_bet_menu;
    bool check=false;
    new_bet_menu = new menu;
    menu_surf=(*new_bet_menu).Get_Bet(pers);
    SDL_BlitSurface(menu_surf, NULL, Surf_Display, NULL);
    bool menu_bet_doing =true;
    while(menu_bet_doing){
        while(SDL_PollEvent(&Event)) {
            switch(Event.type){  
                case SDL_KEYDOWN: 
                    switch(Event.key.keysym.sym){
                        case SDLK_UP:
                            if((*new_bet_menu).menu_step>1){
                                (*new_bet_menu).menu_step--;
                                menu_surf=(*new_bet_menu).Get_Bet(pers);
                                SDL_BlitSurface(menu_surf, NULL, Surf_Display, NULL);
                            }
                            break;
                        case SDLK_DOWN:
                            if((*new_bet_menu).menu_step<5){
                                (*new_bet_menu).menu_step++;
                                menu_surf=(*new_bet_menu).Get_Bet(pers);
                                SDL_BlitSurface(menu_surf, NULL, Surf_Display, NULL);
                            }
                            break;
                        case SDLK_RETURN:
                            switch ((*new_bet_menu).menu_step){
                                case 1:
                                        (*player).tar=1;
                                     if(Get_Sum(player)==true){
                                        //if(i==count_players-1)return true;
                                        menu_bet_doing=false;
                                        //SDL_BlitSurface(menu_surf, NULL, Surf_Display, NULL);
                                     };SDL_BlitSurface(menu_surf, NULL, Surf_Display, NULL);
                                    break;
                                case 2:
                                        (*player).tar=2;
                                    if(Get_Sum(player)==true){
                                         //if(i==count_players-1)return true;
                                        menu_bet_doing=false;
                                        //SDL_BlitSurface(menu_surf, NULL, Surf_Display, NULL);
                                     };SDL_BlitSurface(menu_surf, NULL, Surf_Display, NULL);
                                     break;
                                case 3:
                                        (*player).tar=3;
                                     if(Get_Sum(player)==true){
                                         //if(i==count_players-1)return true;
                                        menu_bet_doing=false;
                                        //SDL_BlitSurface(menu_surf, NULL, Surf_Display, NULL);
                                     };SDL_BlitSurface(menu_surf, NULL, Surf_Display, NULL);
                                     break;
                                case 4:
                                        (*player).tar=4;
                                     if(Get_Sum(player)==true){
                                      //if(i==count_players-1)return true;
                                        menu_bet_doing=false;
                                        //SDL_BlitSurface(menu_surf, NULL, Surf_Display, NULL);
                                     };SDL_BlitSurface(menu_surf, NULL, Surf_Display, NULL);
                                    break;
                                case 5:
                                        (*player).tar=5;
                                     if(Get_Sum(player)==true){
                                        //if(i==count_players-1)return true;
                                        menu_bet_doing=false;
                                        //SDL_BlitSurface(menu_surf, NULL, Surf_Display, NULL);
                                     };SDL_BlitSurface(menu_surf, NULL, Surf_Display, NULL);
                                     break;
                    }
            }
        }
    }
    }
}

Проблемы возникают с публичным полем Surf_Display и с методом Get_Sum()

Answer 1

Перед именем метода нету имени класса::. То есть у вас - свободная функция. Вот она ничего и не видит, ибо к классу не имеет отношения.

READ ALSO
Посчитать количество элементов в файле [требует правки]

Посчитать количество элементов в файле [требует правки]

Как считывать количество чисел в файле? Спасибо всем!

216
Запустить программу CreateProcess

Запустить программу CreateProcess

Как запустить консольную программу сделанную в Visual Studio через CreateProcess? Ошибок не выскакивает, но программа не запускается

273
Неверный ответ c++

Неверный ответ c++

При решении выводится не тот результат, подскажите пожалуйста,что не так

251
Вопрос про реализацию массива

Вопрос про реализацию массива

Извините за глупые вопросы, я просто новичок

210