Problem mit Kopierkonstruktor
-
Ich habe mir einen Kopierkonstruktor geschrieben, aber ich habe einen Fehler entdeckt:
Storage::Storage(const std::vector<float> &data) { m_iSize = data.size(); this->m_vData = new float[data.size()]; for(unsigned int i = 0; i < data.size(); i++) m_vData[i] = data[i];Wenn ich den Kopierkonstruktor jetzt teste, dann kommt im oberen beispiel korrekt: 1,2,3 als ausgabe heraus. Im zweiten jedoch 0,2,3!!! ich weis nicht was ich falsch gemacht habe, dass da so verschiedene ergebnisse kommen.
std::vector<float> data; data.push_back(1); data.push_back(2); data.push_back(3); MATH::Vector v4(data); cout<<v4[0]<<endl; cout<<v4[1]<<endl; cout<<v4[2]<<endl; v4 = data; cout<<v4[0]<<endl; cout<<v4[1]<<endl; cout<<v4[2]<<endl;
-
1. Das ist kein Kopierkonstruktor, sondern ein normaler Konstruktor.
2. Wieso heisst die Klasse, von der du uns den Konstruktor zeigst, Storage, während unten die Klasse MATH::Vector genommen wird?
3. Wie sieht denn der Zuweisungoperator bei dir aus, denn im zweiten Fall wird der Zuweisungoperator benutzt.Grüssli