Probleme copie class

loupin Messages postés 10 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 20 juin 2006 - 26 févr. 2004 à 09:51
VBFRANCE Messages postés 22 Date d'inscription jeudi 10 janvier 2002 Statut Membre Dernière intervention 25 juin 2008 - 15 mai 2004 à 19:27
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

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
26 févr. 2004 à 12:05
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];
}
0
VBFRANCE Messages postés 22 Date d'inscription jeudi 10 janvier 2002 Statut Membre Dernière intervention 25 juin 2008
15 mai 2004 à 19:27
:big) vb
0
Rejoignez-nous