In Delphi können Klassen Default-Array-Eigenschaften haben, so daß etwa objekt[i] als objekt.DefaultProperty[i] interpretiert wird. In C++ würde das so nicht gehen, weil das Objektmanagement über Zeiger geschieht und objekt[i] in C++ für Zeiger nur eine Alternativschreibweise für *(objekt + i) ist.
Der Delphi-Compiler generiert trotzdem für Default-Eigenschaften einen []-Operator-Overload, etwa für TList:
Code:
class PASCALIMPLEMENTATION TList : public System::TObject
{
typedef System::TObject inherited;
...
public:
void * operator[](int Index) { return Items[Index]; }
...
__property void * Items[int Index] = {read=Get, write=Put/*, default*/};
Aber zum Benutzen muß man den Zeiger explizit dereferenzieren: aus objekt[i] in Delphi würde also (*objekt)[i] in C++. Auf Dauer ist das auch lästig.