Je demande donc une fonction principale: B.remove()
déclaration de retour briser ma fonction C++
qui va ici m_arrays[m_oldest]->remove()
Puis enfin là:
int MyClass::remove() {
cout << "this is the remove function"<< endl; //debugging line
int lastVal = 0;
for (int i = start; i < capacity; i++) { //actual remove function
if (m_array[i] != NULL) {
int lastVal = m_array[i];
m_array[i] = NULL; // sets to null
m_size--; //increment
break;
}
}
m_start++; //increment
return lastVal;
}
Si je supprime le code contenant LASTVAL , la fonction fonctionne correctement. Pourquoi est-ce? Y at-il un moyen facile de résoudre ce problème? Comme vous pouvez le voir, j'essaie de renvoyer une valeur avant de la retirer du tableau. Je suis conscient que je devrais utiliser le vecteur ou une autre méthode standard, mais je ne peux pas. J'ai regardé dans mon manuel, mais je ne pouvais pas trouver ce que je cherchais. Toute aide est grandement appréciée.
Veuillez publier un [mcve] afin que nous puissions voir tout ce que votre code est en train de faire qui cause le problème. La sélection que vous avez fournie n'est probablement pas suffisante pour vous signaler le vrai problème dans votre code – xaxxon
@xaxxon Je n'ai pas beaucoup posté car c'est pour un projet et je ne voulais pas poster mon code réel sur internet. J'ai cependant pu recevoir une aide complète. Essaiera d'être plus complet dans le futur. –
Je pense que c'était une erreur. Le doute OP voulait montrer que deux copies sont utiles – Cuber