2012-04-26 90 views
0

當我嘗試調用OnLoop時,出現無法識別它的錯誤。在C++中未定義對class :: function的引用

///Ins_App.h

#ifndef INS_APP_H 
#define INS_APP_H 

#include <SDL/SDL.h> 

class Ins_App 
{ 
    private: 
     /* Variables */ 
     bool Running; 
     SDL_Surface* Surf_Display; 

    public: 
     /* inMain */ 
     Ins_App(); 
     int OnExecute(); 

    public: 
     /* Other */ 

     bool OnInit(); 
     void OnEvent(SDL_Event* Event); 
     void OnLoop(); 
     void OnRender(); 
     void OnCleanup(); 

    protected: 
}; 

#endif // INS_APP_H 

///Ins_App.cpp

#include "Ins_App.h" 

Ins_App::Ins_App() 
{ 
    Running = true; 
    Surf_Display = NULL; 
} 

int Ins_App::OnExecute(){ 

    if(OnInit() == false){ 
     return -1; 
    } 
    SDL_Event Event; 
    while(Running){ 
     while(SDL_PollEvent(&Event)){ 
      OnEvent(&Event); 
     } 
     OnLoop(); 
     OnRender(); 
    } 
    return 0; 
} 

int main(int argc, char* argv[]){ 

    Ins_App iApp; 
    return iApp.OnExecute(); 

} 

///OnLoop.cpp

#include "Ins_App.h" 

void OnLoop(){ 

} 

這裏是錯誤:

obj \ Debug \ src \ Ins_App.o:C:\ Users \ Al \ Documen ts \ Ins \ src \ Ins_App.cpp | 19 |對`Ins_App :: OnLoop()'的未定義引用|

我在做什麼錯?

回答

9

你沒有定義您的會員:

void OnLoop(){ 

} 

應該

void Ins_App::OnLoop(){ 

} 

你基本上只是定義一個名爲OnLoop免費的功能,而不是你的會員。

+0

哈哈現在很明顯。 – Atrus 2012-04-27 17:03:10

相關問題