Aufgabe Array über Konstruktor definieren
-
Folgende Aufgabe:
Die folgende Klasse Vector soll ein Array des primitiven Typs double kapseln. Das Attribut theNumbers zeigt dazu auf das erste Element eines dynamisch allokierten C-Arrays, das Attribut gibt die Anzahl der darin enthaltenen Elemente an.
#include<iostream> #include<cassert> class Vector{ public: Vector (size_t size) : numberOfNumbers(size) { } private: const size_t numberOfNumbers; double* theNumbers; }; int main(){ Vector v(10); Std::cout <<“Element 4 “ << v[3] << std::endl; }Irgendwie komme ich nicht mit der Aufgabe zurecht.
Der dynamische Speicher für ein Array wird mitdouble* theNumbers = new double[numberOfNumbers];angelegt. Und dann? Was muss ich tun, dass mein Objekt auf das Array zugreifen kann?
Bitte helft mir.
-
Na ich würd' sagen du solltest den operator [] definieren wenn du ihn verwenden willst...
-

Und das als armer, kleiner Anfänger...
Und wie mache ich das?Vector& operator[](Vector& a) {.. hui, und dann?
Bitte einen kleinen Tipp.
-
Nix und dann, das ist schonmal überhaupt nicht richtig. Also theoretisch kann man natürlich den operator [] mit dieser Signatur definieren. Aber es macht keinen Sinn - damit kannst du nicht das machen was du machen willst.
Du willst dem operator [] ja nicht nen anderen Vektor als Parameter mitgeben, sondern nen
size_t(oderunsigned intoderlongoder was weiss ich was). Und du willst auch nicht ne Referenz auf nen Vektor als Ergebnis haben sondern nendouble.Google mal nach:
define subscript operator c++Damit findest du haufenweise Informationen zu dem Thema (und das ist nicht nur ne Vermutung, ich hab's ausprobiert ;)).