S'il vous plaît, seigneurs de stackoverflow, ayez pitié de moi. Ma mission est due dans une heure et tout fonctionne - sauf que je ne peux pas pour la vie de moi comprendre pourquoi mon constructeur de mouvement (et par extension, mon devoir de copie) jette une faute de segmentation!C++: Move Constructor lançant un défaut de segmentation?
Informations supplémentaires si cela aide: le programme consiste à créer une structure de données appelée Chaîne qui stocke essentiellement un tableau de tout type de données, et un size_t avec la taille.
Merci d'avance et laissez-moi savoir si vous avez besoin de plus d'informations!
// Copy-constructor.
Chain(const Chain &rhs) {
size_ = rhs.size();
array_ = new Object[size_];
for (int i = 0; i < size_; i++) {
array_[i] = rhs.array_[i];
}
}
// Copy-assignment.
Chain& operator=(const Chain &rhs) {
Chain copy = rhs;
std::swap(*this, copy);
return *this;
}
// Move-constructor.
Chain(Chain &&rhs) {
rhs.array_ = nullptr;
}
Votre constructeur de déplacement ne définit aucun membre de la classe, donc les opérations futures risquent d'échouer ... –
True. Je ne pense pas que ce soit la question ici, cependant - ma mise en œuvre était exactement ce que mon professeur a suggéré. – BowmanBeric
@ BowmanBeric alors votre professeur a tort. Ou vous avez mal compris ce qui vous a été dit. –