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 mit

    double* 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 (oder unsigned int oder long oder was weiss ich was). Und du willst auch nicht ne Referenz auf nen Vektor als Ergebnis haben sondern nen double .

    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 ;)).


Anmelden zum Antworten