Bitte, Herren von stackoverflow, hab Erbarmen mit mir. Meine Aufgabe ist in einer Stunde fällig und alles funktioniert - außer dass ich nicht für mein Leben herausfinden kann, warum mein Move-Konstruktor (und damit meine Kopieraufgabe) einen Segmentierungsfehler auslöst!C++: Move Constructor wirft einen Segmentierungsfehler?
Zusätzliche Informationen, wenn es hilft: Das Programm soll eine Datenstruktur namens Chain erzeugen, die grundsätzlich ein Array eines beliebigen Datentyps und ein size_t mit der Größe speichert.
Vielen Dank im Voraus und lassen Sie mich wissen, wenn Sie weitere Informationen benötigen!
// 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;
}
Ihr Bewegungskonstruktor setzt keine der Klassenmitglieder, sodass zukünftige Operationen wahrscheinlich fehlschlagen ... –
Wahr. Ich denke nicht, dass das hier das Thema ist - meine Umsetzung war genau das, was mein Professor vorgeschlagen hat. – BowmanBeric
@BowmanBeric dann ist dein Professor falsch. Oder du hast missverstanden, was dir gesagt wurde. –