[c/c++] probleme avec une structure...fait par 1 prof.

probleme avec une structure...fait par 1 prof. [c/c++] - Programmation

Marsh Posté le 04-04-2002 à 22:46:21    

j'en ai raz le bol on a des fonction a implementer avec une structure deja faite vous pouvez me dire si c'est bon:
struct defFonc {unnom  nom; int nbparam;
                listeParamF lesParams; listeIns lesIns;};
 
struct unParamF{ unnom nom; double valpar;};
struct unParamE{listeLex exp; double valpar;};
struct ordreS0{unnom nom; };
struct ordreS1{unnom nom; listeLex param1;};
struct ordreS2{unnom nom; listeLex param1, param2;};
struct ordreCOND{unnom nom;listeLex compar; listeIns ISV, ISF;};
struct ordreREP{unnom nom; listeLex nbfois; listeIns corps;};
struct ordreAPPEL{unnom nom; listeParamE lesParams;};
 
struct boite{typeContenu typ;
             union {defFonc def;
                   unParamF par;
                   unParamE exp;
                   unLexM lex;
                   ordreS0 os0;
                   ordreS1 os1;
                   ordreS2 os2;
                   ordreCOND si;
                   ordreREP rep;
                   ordreAPPEL app;
                   };
             boite * lien;
};

 
il me sort un magnifique: member `struct defFonc boite::
{anonymous union}::def' with constructor not allowed in union
a la compil...c'est normal ?
comment faire j'ai besoin d'une structure de ce style...

Reply

Marsh Posté le 04-04-2002 à 22:46:21   

Reply

Marsh Posté le 04-04-2002 à 23:08:59    

:heink:  :(  :hello:  
ME <----------  :gun:  :gun:  
 :cry:  
 
 :cry:  
 
 :cry:  
 :fou:

Reply

Marsh Posté le 04-04-2002 à 23:22:08    

Je crois en effet que ce n'est pas conforme à la norme C++ (voir §r.9.5 du bouquin de Stroustrup, "le langage c++", 2nd edition).
Mais la norme a peut être évolué. (Quoique si il y a des constructeurs par défaut dans les différents type de l'union, comment peut instancier un objet union ?)
 
Et c'est peut être acceptable en C (sans constructeur)

 

[jfdsdjhfuetppo]--Message édité par Verdoux--[/jfdsdjhfuetppo]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed