2016-09-15 2 views
-3

У меня проблема с включением файлов заголовков. В IObject я есть ошибка: «Использование неопределенного типа" Button»Включая файлы заголовков 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 type и When can I use a forward declaration?

+0

Я преклонился вперед delcare. Я использую эти заголовки в основной программе, и он не может быть объявлен вперед, потому что во всех случаях будет проблема с неопределенным классом, я найду способ его синхронизации. PS. извините за редактирование, я думал, что это был мой ответ ..... – sadsad

Смежные вопросы