Sorgfältige Verwendung const ist wichtig bei Klassen und Objekten (bei bisherigen Beispielen wurde der Einfachheit halber darauf verzichtet).
// My3Vector declarations with const specifiers for arguments and methods class My3Vector { private: // coordinates, hidden double x; double y; double z; public: My3Vector(); // default constructor My3Vector(const double c1, const double c2, const double c3);// Other constructor // methods: // get length of vector double Length() const; // access elements double X() const; double Y() const; double Z() const; // add My3Vector Add( const My3Vector & p ) const; // scale with double void Scale( const double a ) { x *= a; y *= a; z *= a; }; };
Objektübergabe als Referenz bei Methodenaufruf
Wenn Objekte als Argumente bei Aufruf von Funktionen oder Methoden
übergeben werden empfiehlt es sich dringend die Objekt-Variable
in der Funktions-Deklaration als Referenz anzugeben, also
nicht
call-by-value
My3Vector Add(My3Vector p ) ;
sondern
My3Vector Add(My3Vector & p );
oder noch besser mit const:
My3Vector Add(const My3Vector & p ) const;
Unterschied: