2012-04-26 101 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

相关问题