next up previous contents index
Next: Partitionierung des globalen Namensraumes Up: 50 Ways to Improve Previous: Vorsicht bei potentieller Mehrdeutigkeit

Compiler-generierte Elementfunktionen

 

Wenn die Benutzung Compiler-generierter Elementfunktionen (für Kopie und Wertzuweisung) nicht erwünscht ist, sollte sie explizit verboten werden:

    class array
    { ...
     private:
      array& operator = (const array& rhs) {};

Das reicht noch nicht ganz: Freunde und Member dürfen Operator = immer noch benutzen (mit ungewolltem Ergebnis).

Trick: Nur deklarieren, nicht definieren (wirklich nicht):

    class array
    { ...
     private:
      array& operator = (const array& rhs);

Benutzungen dieses Operators werden dann vom Linker beanstandet.


next up previous contents index
Next: Partitionierung des globalen Namensraumes Up: 50 Ways to Improve Previous: Vorsicht bei potentieller Mehrdeutigkeit

Peter Pfahler, 1997