001
28.08.2003, 15:32 Uhr
0xdeadbeef
Gott (Operator)
|
Es gibt im wesentlichen drei Möglichkeiten. Die erste ist, den Zugriff über Methoden zu erlauben:
C++: |
class A { private: int a; public: void setA(int); int getA(); };
|
Das hat den Vorteil, dass du irgendwelche Aktionen, die beim setzen oder abfragen von Variablen gemacht werden müssen, beeinflussen kannst, und den Nachteil, dass es sehr viel Code generiert. Eine bessere Lösung ist da die Aspektorientierung, die sich aber noch nicht wirklich durchgesetzt hat. (wenns dich interessiert, schau mal auf www.aspectc.org vorbei). Die zweite ist, die Variable public zu deklarieren:
C++: |
class A { public: int a; };
|
Das hat den Vorteil, dass es schön einfach ist, aber den Nachteil, dass du nicht kontrollieren kannst, wer welchen Zugriff auf die Variable hat. Die dritte Möglichkeit ist, die andere Klasse als friend zu deklarieren:
C++: |
class B;
class A { friend class B;
private: int a; };
|
Das hat den Vorteil, dass nur die Klasse B Zugriff auf die private Variable hat, aber den Nachteil, dass B auf alle privaten Member der Klasse zugreifen kann. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |