Probleme copie class

Signaler
Messages postés
10
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
20 juin 2006
-
Messages postés
22
Date d'inscription
jeudi 10 janvier 2002
Statut
Membre
Dernière intervention
25 juin 2008
-
Bonjour a tous,
je vous explique mon probleme. J'ai créer une classe avec deux fils point et tempo. Je voudrais copier le contenu des donnees membres de point dans tempo.

class Dico
{
public:
char ang[25];
char fr[25];
};

Dico * point;
point = new Dico[5];
Dico * tempo;
tempo = new Dico[7];

// Je rentre des mots dans la class fils point et je souhaite copier le contenu de point dans tempo.

for( int i=0; i<5; i++)
{
(tempo + i)->an = (point + i)->an;
(tempo + i)->fr = (point + i)->fr;
}

Alors la ca me genere une erreur : " '=' left operand must be l-value ".
Donc bah j'arrive pas a resoudre ce probleme.
Si quelqu'un pouvait me donner un pti coup de main.

Merci d'avance.

2 réponses

Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
pour copier des chaîne de caractères (ce que sont an et fr) il faut utiliser strcpy.

Dico * point;
point = new Dico[5];
Dico * tempo;
tempo = new Dico[7];

for( int i=0; i<5; i++)
{
strcpy(tempo + i)->an, (point + i)->an);
strcpy(tempo + i)->fr, (point + i)->fr);
}

ou (notation plus en rapport avec des tableaux)

for( int i=0; i<5; i++)
{
strcpy(tempo[i].an, point[i].an);
strcpy(tempo[i].fr, point[i].fr);
}

De plus, comme tes tableaux ont une taille fixe dans ta classe Dico et n'utilise aucun ponteur, tu peut utiliser le constructeur par recopie brute de la classe Dico :
for( int i=0; i<5; i++)
{
tempo[i] = point[i];
}
Messages postés
22
Date d'inscription
jeudi 10 janvier 2002
Statut
Membre
Dernière intervention
25 juin 2008

:big) vb