Soner hat geschrieben:Vielleicht sollte man Zeigeroperator "^" aus Anweisungsblock komplett entfernen und nur bei Type- und Variablendefinition benutzen. Und wenn man dann in Anweisungsblock Zeigertypen verwendet, dann meint man immer den Wert nicht die Adresse:
Das gleiche hab ich mir auch schon mal gedacht. Ich glaube nämlich, dass die Schwierigkeiten mit Zeigern allein darauf beruhen, dass man ohne langjährige Gewöhnung mit Zeigern den Code nicht intuitiv runterlesen kann. Obwohl es ja nur zwei Operatoren gibt. Es sind aber immer Variablen mit im Spiel, und die funktionieren in einer versetzten Logik.
Mit Soners Vorschlag steckt in Pointern und Variablen die gleiche Syntaxlogik. Den Dereferenzierungsoperator braucht man aber trotzdem noch um kompakten Code zu schreiben, z.B.
wobei hier nichtmal Zeigervariablen verwendet wurden.
Class mit eigenständiger Syntax halte ich aber trotzdem für wichtig. Sonst muss man jede Variable mit Zeiger deklarieren, was doch hässlich ist.
@MSE, ich bin immernoch der Meinung, dass du 'Object' nicht als Schlüsselwort verwenden solltest, sondern 'Record'. Das pascalsche Object hat doch auf Rechnern mit dynamischer Speicherverwaltung kaum eine sinnvolle Anwendung und dein 'Object' wird in diesem Umfeld wohl meistens als einfaches 'Record' verwendet. Die Programmierer sind auch an den Begriff Record gewohnt. Die Bezeichnung nimmt ja nichts den Möglichkeiten weg.
@Soner, in deinem Beispiel werden die Objekte ja statisch angelegt, wenn sie nicht als Zeiger deklariert werden. Ein Object kann damit in sich keine Deklaration seiner selbst beinhalten, außer als Zeiger.