PDA

View Full Version : [FOX] overloading mal riconosciuto


NA01
21-02-2004, 18:26
almeno credo.....
ho questa classe:

class FXFinestraOpzioni : public FXDialogBox {
FXDECLARE(FXFinestraOpzioni)
protected:
FXVerticalFrame* Frame;
private:
FXFinestraOpzioni(){}
public:
FXFinestraOpzioni(FXWindow* owner);
};

e questo codice nel rispettivo file .cpp

FXFinestraOpzioni::FXFinestraOpzioni(FXWindow* owner):
FXDialogBox(owner,"Opzioni",DECOR_TITLE|DECOR_BORDER){ .....


l'errore che mi dà g++ -l FOX main.cpp (il file da cui parte tutto) è:

Opzioni.h: In constructor `FinestraPrincipale::FinestraPrincipale()':
Opzioni.h:6: `FXFinestraOpzioni::FXFinestraOpzioni()' is private
FinestraPrincipale.h:11: within this context
In file included from main.cpp:3:
Opzioni.h: In constructor `FinestraPrincipale::FinestraPrincipale(FXApp*)':
Opzioni.h:6: `FXFinestraOpzioni::FXFinestraOpzioni()' is private
FinestraPrincipale.cpp:10: within this context


perchè non riconosce il metodo pubblico che tra l'altro gestisce anche gli stessi parametri???

il file di test è uguale tranne che nei nomi (almeno credo :mc: ) ma non dà errori :wtf:


ciao :D

anx721
21-02-2004, 20:40
Dal poco che so di c++, mi sembra di capire che hai dichiarato un costruttore privato senza argomenti per la classe FXFinestraOpzioni il che ti impedisce di richiamare quel costruttore al di fuori della classe FXFinestraOpzioni (dal messaggio di errore sembra infatti che tu invochi quel costruttore privato all'interno della classe FinestraPrincipale). Dovresti quindi o rendere pubblico il costruttore o non chiamarlo da FinestraPrincipale,

ciao.

NA01
21-02-2004, 20:44
si, non lo avevo detto...
con public funzia, ma il punto è che nell'esempio delle fox non è public, bensì private :eek:

ciao

anx721
21-02-2004, 21:58
Bho...avranno sbagliato a scrivere!