Ahm, welche Sonderzeichen kommen in Objective-C nicht vor, die in C++ verwendet werden?
Der doppelte Doppelpunkt etwa.
Da halte ich dagegen: In C-Methoden werden die Parameter mit ( ) eingeklammert und durch "," getrennt, in Klassenmethoden entweder durch [ ], zusammen mit dem Methodennamen oder garnicht. Dazu kommt die Markierung der Klassenmethoden durch "+" und der Instanzmethoden durch "-"
Damit hältst du nicht dagegen, weil weder runde Klammern noch Kommata einen Informationsgehalt bezüglich des Parameters aufweisen. Das war jetzt aber wirklich zu einfach.
In Java und C++ werden *alle* Methoden im C-Style beschrieben. Wie erklärst du das einem Anfänger?
Keine Ahnung. Wieso sollte ich das einem Anfänger erklären.
Du kannst in C++ auch alles klammern, was du möchtest, musst es aber nicht.
Dann hast du doppelte Klammerung. Das ist gewiss nicht übersichtlicher.
Zugegebener massen ist das ein schwaches Argument.
Es ist gar keines.
Mit einem Satz wie "Die Zuordnung geschieht in der Deklaration, die Definition implementiert nur noch" machst du es einem Einsteiger aber auch begreiflich. (Du meintest doch, dass Methoden bei der Definition nicht mehr in Klassen gruppiert werden)
Nein, ich meinte Aufrufketten, bei denen in C++ nicht aus dem Ausdruck selbst klar ist, wer was zurückgibt und womit die Kette fortgesetzt wird.
Im Übrigen ging es mir nicht um Objective-C vs C++, Ich schrieb etwas von Java vs C++ und könnte auch Java vs Objective-C gemeint haben.
Darum ging es nicht. Es ging darum, dass du behauptet hattest, man müsste eine Diplomarbeit schreiben, um Vorzüge einer Syntax zu zeigen. Das muss man nicht.
Java-Code ist einfacher und strukturierter als C++ und Objective-C und damit leichter zu lesen
Klar, schon wieder Beweis durch Behauptung. Mutmaßlich brauccht man erneut eine Diplomarbeit für den Beleg.
(Eine Klasse pro Datei. Es wird nie deklariert, immer gleich implementiert - allerdings kann eine Schnittstelle durch ein Interface beschrieben werden).
Da fällt mir noch etwas auf. Gibt es in Objective-C soetwas wie Namsensräume?
Du hast dich mutmaßlich nie mit Objective-C beschäftigt. Sonst würdest du bemerken, dass diese Frage haarscharf am Thema vorbei geht.
C++ hat Namespaces. Java seine Packete. Wie sieht es mit der Typsicherheit aus? Kann ich schon bei der Typprüfung beim Schreiben sicherstellen, dass in eine Collection nur bestimmte Typen aufgenommen werden?
Ich finde es bemerkenswert, mit welcher Windeseile du vom Thema flüchhtest uund ein neues Fass aufmachst. Aber glücklicherweise gibt es dafür gleich einen Artikel:
http://www.cocoading.de/Common/Article.php?Area=3&Article=8
Ab Typlosigkeit.
Wie sieht es mit generischer Programmierung aus?
Derlei Krücken für konzeptionell verdorbene Programmmiersprachen hat man in Objective-C nicht nötig.
http://www.cocoading.de/Common/Article.php?Area=3&Article=8
Das sind jetzt Fragen, die *ich* als Anfänger in Objective-C habe.
Nein, diese Fragen hat ein Programmieranfänger nicht, weil er erst gar nicht auf den Gedanken kommt, derart Krankes wie Generics sich auszudenken. Auf so einen Gedanken kommt man immer erst, wenn man nach Jahren bemerkt, wie verbaut die Programmiersprache konzipiert wurde.
So war es bei C++ und so war es bei Java …