Jens Holzkämper: (C++) Index-Operator überladen in Klassentemplate

Beitrag lesen

Tach,

Nimm am Besten size_t anstelle von unsigned int, da size_t genau so dimensioniert ist, wie deine Plattform maximal an Arbeitsspeicher verwalten kann.

guter Hinweis, hatte nur das int aus der Aufgabenstellung in ein unsigned gewandelt um mich um die Überprüfung auf positive Werte zu drücken.

In C++ brauchst diese „C-Schreibweise“ nicht mehr, stattdessen schreibt man:

Hätte ich getan, der Code war von der IDE eingefügt.

Vektor() {, wobei der Code für setLength() und setCapacity noch fehlt:

Schon klar, hatte ich zum Kürzen rausgeschmissen.

Du legst daten doch als Array an, von daher musst du den Operator delete in der Arrayschreibweise benutzen:

~Vektor() {

delete[] daten;
}

  
Danke, da wäre ich sicher noch drüber gestolpert.  
  

> Beim ersten Kompilieren mit dem GCC fiel mir auf, dass in der Zeile hier drüber die Klassendefinition ja zu Ende ist, der GCC stößt sich daher an folgendem Code:  
  
Dann werfe ich das da auch mal rein, finde ich übrigens recht unschön, dass es hier scheinbar nicht mehr möglich ist Definitionen und Deklarationen klar zu trennen.  
  

> Wenn ich diese Methode folgendermaßen \_in die Klasse\_ integriere, gibt es soweit keine Fehler mehr, allerdings verstehe ich nicht, wieso du daten sich selbst zuweist:  
  
Gute Frage, nächste Frage.  
  

>  • error: `main' must return `int'  
  
Ist klar, fiel hier Q&D zum Opfer.  
  

>  • error: cannot convert `Vector<int>' to `int' in initialization, bezogen auf  
>    `int b = erwin[1];`{:.language-c++}  
>    was auch logisch ist, schließlich ist erwin \_ein Pointer, kein Objekt\_.  
  
\*Kopf auf Tischplatte\*  
  
mfg  
Woodfighter