Die Klassenfelder deklarieren
Nach oben zu Stift und Pinsel als published deklarieren
Für jede Klasse, die einer Komponente untergeordnet ist, muss ein Klassenfeld deklariert werden. Dieses Feld garantiert, dass der Komponente immer ein Zeiger zur Verfügung steht, über den sie die untergeordnete Klasse freigeben kann, bevor sie sich selbst freigibt. Im Allgemeinen initialisiert eine Komponente ihre untergeordneten Objekte im Konstruktor und gibt sie im Destruktor frei.
Felder für untergeordnete Objekte werden fast immer als private deklariert. Wenn Anwendungen (oder andere Komponenten) Zugriff auf solche Objekte benötigen, können Sie zu diesem Zweck Eigenschaften einführen, die Sie als published oder public deklarieren.
Fügen Sie der Beispielkomponente nun Felder für einen Stift und einen Pinsel hinzu:
type TSampleShape = class(TGraphicControl) private { Felder sind fast immer als private deklariert } FPen: TPen; { Ein Feld für das Stift-Objekt } FBrush: TBrush; { Ein Feld für das Pinsel-Objekt } . . . end;
class PACKAGE TSampleShape : public TGraphicControl { private: // Datenelemente sind immer private TPen *FPen; // Datenelement für den Stift TBrush *FBrush; // Datenelement für den Pinsel . . . };