004
09.07.2003, 09:34 Uhr
ao
(Operator)
|
Alle Memberfunktionen einer Klasse können alle Membervariablen sehen. D.h. wenn xyInhalt nur für Funktionen derselben Klasse sichtbar sein muß, genügt private.
Wenn du andere Klassen von SHFile ableitest und diese auch Zugriff auf xyInhalt brauchen, muß es protected sein.
Noch was anderes: Durch die Pointer-Zuweisung "xyInhalt = sText;" greift SHFile direkt auf Member von XYZ zu; Member-Sharing ist ne üble Falle, die die Gefahr birgt, daß XYZ::bspText irgendwann von irgendwem verändert oder freigegeben wird und SHFile dadurch unerwartet Probleme bekommt.
Sicherer ist, wenn jede Klasse ihre eigene Kopie des Inhalts hat und über die Lebensdauer selbst bestimmt.
Wenn du aus irgendwelchen zwingenden Gründen Member-Sharing machen *mußt*, gehört ein Verriegelungsmechanismus oder eine Lebenszeitkontrolle dazu, um sicherzustellen, daß der Inhalt nicht gelöscht wird, solange noch jemand da ist, der ihn braucht.
ao |