2012-04-26 7 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(){ 

} 

あなたは基本的には自由OnLoopという名前の関数ではなく、あなたのメンバーを定義している

void Ins_App::OnLoop(){ 

} 

でなければなりません。

+0

ハハそれは今すぐ明らかです。 – Atrus

関連する問題