Zeiger auf Objekte selbsterstellter Klassen

der sizeof-Operator

Bei der Verwednung des new-Operators muß dieser die Größe des Objektes kennen, für das Speicherplatz alloziert wird. Dies geschieht über den sizeof-Operator. Dieser liefert für einen Typ oder einen Bezeichner die Größe des Speicherplatzes, der belegt wird zurück. Dabei ist die Größe al Vielfaches der Größe eines char definiert.

Hier ein paar Beispiele für den sizeof-Oparator. Man beachte, daß die Größenangaben auf verschiedenen Systemen unterschiedlich sein können.

cout << "char     : " << sizeof(char) << endl;      // char      : 1
cout << "char&    : " << sizeof(char&) << endl;     // char&     : 2
cout << "char*    : " << sizeof(char*) << endl;     // char*     : 2
cout << "char[10] : " << sizeof(char[10]) << endl;  // char[10]  : 10

cout << " A     : " << sizeof(A) << endl;            // A         : 2
cout << " A&    : " << sizeof(A&) << endl;           // A&        : 2
cout << " A*    : " << sizeof(A*) << endl;           // A*        : 2
cout << " A[10] : " << sizeof(A[10]) << endl;        // A[10]     : 20

A a[3];
cout << ä     : " << sizeof(a) << endl;            // a         : 6

Für spezielle Anwendugen kann es sinnvoll sein den new-Operator klassenspezifisch zu überladen. Hier ist dann die Benutzung des sizeof-Operators notwendig. Auch bei einer C-konformen Allokation des Speichers wird die Größe eines Objektes benötigt. Diese Allokation sollte aber in C++-Programmen nicht benutzt werden, da es sonst zu Schwierigkeiten kommen kann.