2016-09-15 143 views
-3

我有包含頭文件的問題。 在IObject提取我有錯誤: 「使用未定義的類型‘按鈕’的」包括頭文件C++

//IObject.h 
#pragma once 
#include "Button.h" 

struct IObject 
{ 
    void SendToMenu(Button sender) //ERROR 
    { 
     switch (menu_type) 
     { 
     case menu::game: 
      Game.AllButtons.push_back(&sender); 
      break; 
     } 
    } 
}; 

#pragma once 
#include "ButtonEvent.h" 

class Button sealed : public IObject 
{ 
public: 

    Button(Vector2f position, Vector2f size, string button_value, Color text_color, Color normal_color, Color pressed_color, menu menu_type) 
    { 
     this->position = position; 
     this->size = size; 
     this->button_value = button_value; 
     this->button_color = normal_color; 
     this->text_color = text_color; 
     this->active_background_color = pressed_color; 
     this->normal_background_color = normal_color; 
     this->ID = buttons.size() > 0 ? buttons.size() : 0; 
     this->menu_type = menu_type; 

     SendToMenu(*this); 

     buttons.push_back(*this); 
    } 

    ~Button() {}; 
}; 
+1

請把你的代碼中問題的明確和精簡版在線。另外在這方面:http://stackoverflow.com/help/mcve – Hayt

回答

0

按鈕應該要麼向前聲明或使用它之前定義。

退房Use of undefined typeWhen can I use a forward declaration?

+0

我catn前delcare。我在主程序中使用這些頭文件,它不能被轉發聲明,因爲在所有情況下,未定義的類都會出現問題,我找到了一種同步這種方法的方法。 PS:抱歉編輯,我想這是我的答案..... – sadsad