Struct constante

Signaler
Messages postés
6
Date d'inscription
dimanche 2 mars 2003
Statut
Membre
Dernière intervention
18 mai 2004
-
Messages postés
455
Date d'inscription
samedi 26 octobre 2002
Statut
Membre
Dernière intervention
6 avril 2004
-
Bonjour,

Je suis ss Dev-C++.
Peut-on définir une structure constante en l'initialisant à partir d'une autre structure constante ?

ex:
const type1 MaConstante1 = {...,...,...};
const type2 MaConstante2 = {...,...,MaConstante1};

Ceci ne marche pas, par contre je peux compiler en ommettant MaConstante1 :
const type2 MaConstante2 = {...,...};

Mais ensuite je ne peux pas initialiser le reste de MaConstante2!

merci de votre aide!
A voir également:

4 réponses

Messages postés
455
Date d'inscription
samedi 26 octobre 2002
Statut
Membre
Dernière intervention
6 avril 2004
8
je te conseille plutôt de coder vraiment en C++
rajoute un constructeur à ta struct. Il doit accepter les arguments nécessaires pour initialiser les membres
(facultatif) change le mot struct en class ...

struct s_conteneur
{
struct_arete a1;
struct_arete a2;
s_conteneur(){}
s_conteneur(struct_arete a1, struct_arete a2){this->a1=a1; this->a2=a2;}
} conteneur;

ensuite il est simple de faire
const struct_arete ARRETE1 = {1,2,3};
const struct_arete ARRETE2 = {4,5,6};
const s_conteneur CUBE(ARRETE1, ARRETE2);
Messages postés
6
Date d'inscription
dimanche 2 mars 2003
Statut
Membre
Dernière intervention
18 mai 2004

Merci vieuxLion ... (je ne connaissais pas les constructeurs) mais j'ai tjs un probleme!

De cette maniere j'initialise bien les 2 structures (ARRETE1 et ARRETE2 dans ton exemple) mais pas le reste. Car dans s_conteneur tu n'as mis QUE des structures et moi je veux mettre aussi des int, char, voire un tableau de struct. Comment initialiser et referencer tout ca ?

Merci de votre aide
Messages postés
6
Date d'inscription
dimanche 2 mars 2003
Statut
Membre
Dernière intervention
18 mai 2004

Je viens de remarquer qu'on pouvait mélanger tous ces types sans problemes dans une struct en C++ (en C ca ne marche pas)
Messages postés
455
Date d'inscription
samedi 26 octobre 2002
Statut
Membre
Dernière intervention
6 avril 2004
8
Tu est donc dépanné je crois !
complément d'info pour être sûr :

Un constructeur accepte des paramètres de tous types
struct, int , etc...

Exemple :
class Segment
{
private:
int dx, dy;
Point ptDepart;
public:
Segment(Point p, int largeur, int hauteur)
{ptDepart=p; dx=largeur; dy=longueur;}
};
il s'utilise alors comme ça :
Point pt(0,0);
Segment s(pt, 1,2);