Mon programme se bloque quand il essaie d'affecter un objet à l'autre, est-ce que vous voyez quelque chose de mal à cela?Quel serait le problème avec cette surcharge d'opérateur d'affectation
Les variables sont les suivantes:
Field *fields[50];
int numOfFields;
int currentField;
La fonction est:
Screen& operator=(Screen &scr) {
if (this != &scr){
for (int i = 0; i < 50; i++)
fields[i] = NULL;
for (int i = 0; i < scr.numOfFields; i++)
fields[i] = scr.fields[i];
numOfFields = scr.numOfFields;
currentField = scr.currentField;
}
return *this;
}
Savez-vous quelle ligne il se bloque sur? – Anthony
Veuillez publier un programme de test complet, y compris les définitions de classe complètes, les prototypes de fonctions et main(), qui compile et se bloque. Parce que j'ai écrit un tel programme de test qui inclut chaque ligne de votre code et 1) il n'a même pas compilé sans ajouter un const à l'opérateur = et en faisant une fonction membre, et 2) après avoir fait cela, il compilé et a couru sans s'écraser. –
A quoi sert Field? Possédez-vous l'objet 'Field' pointé ou non? Si vous le faites, vous avez des fuites de mémoire et des accidents. Si vous ne le faites pas, alors c'est bon ... mais nous ne pouvons pas deviner. –