2012-01-24 3 views
0

я действительно не знаю, почему я эта ошибка переопределениепереопределение "класса GtkwidgetDef"

GtkwidgetDef.h

#include <gtk/gtk.h> 
class GtkwidgetDef 
{ 
public: 
    GtkWidget* display; 
    GtkwidgetDef(GtkButton* button); 
}; 

GtkwidgetDef.cpp

#include "GtkwidgetDef.h" 
extern "C" GtkWidget* lookup_widget(GtkWidget* widget, const gchar* widgetName); 

GtkwidgetDef::GtkwidgetDef(GtkButton* button){ 
display = lookup_widget(GTK_WIDGET(button), "display"); 
} 

эти два fonctions являются Жюст определение и конструктор

MesFonctions.cpp

#include "MesFonctions.h" 
#include <math.h> 
string str; 
gchar str1[9] = ""; 

void showText(GtkwidgetDef widgets, gchar* label) 
{ 
gtk_entry_set_text(GTK_ENTRY(widgets->display), label); 
} 
......... 

CALCU.h

#include <gtk/gtk.h> 
typedef enum Event{ SEVEN_CLICKED, PLUS_CLICKED, VALIDE } Event; 

int processEvent(Event e, GtkButton* button); 

CALCU.cpp

#include "CALCU.h" 
#include "MesFonctions.h" 
#include "GtkwidgetDef.h" 

int processEvent(Event e, GtkButton* button) 
{ 
//GtkwidgetDef* widgets = new GtkwidgetDef(); 
//label = gtk_button_get_label(button); 
GtkwidgetDef widgets(button); 
gchar* label; 
strcpy(label, gtk_button_get_label(button)); 

string s; 
switch(e) 
{ 
    case SEVEN_CLICKED: 
     //showText(*widgets, label); 
     showText(widgets, label); 
     s = "7"; 
     pushValue(s); 
     break; 
    case PLUS_CLICKED: 
     //showText(*widgets, label); 
     showText(widgets, label); 
     s = "+"; 
     pushValue(s); 
     break; 
    case VALIDE: 
     showResult(); 
     break; 
} 
} 

Интересно, если я сделать ошибку здесь, в этой строке GtkwidgetDef виджетов (кнопка);

+0

Не могли бы вы показать свой '' файл «MesFonctions.h», а? – dasblinkenlight

ответ

1

Я думаю, причина, по которой вы видите это, состоит в том, что вы включаете GtkwidgetDef.h дважды в некоторый момент: один раз прямо и косвенно. Вы, вероятно, нужно добавить include guard в ваш заголовок:

#ifndef GtkwidgetDef_h 
#define GtkwidgetDef_h 

#include <gtk/gtk.h> 
class GtkwidgetDef 
{ 
public: 
    GtkWidget* display; 
    GtkwidgetDef(GtkButton* button); 
}; 

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