Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

31

23.07.2010, 08:47

Nun, ich denke worauf er hinauswill ist der Unterschied zwischen Expression und Statement der doch ein sehr wesentlicher ist. Ein if ist im Gegensatz zum Conditional Operator, der ein Operator ist, eben ein Statement. Auch wenn man natürlich mit if ein äquivalentes Verhalten bekommen kann so sind das, rein sprachlich betrachtet, zwei grundverschiedene Dinge...

C++ kennt keinen Control Flow? Ähm... Es mag ja gestern spät gewesen sein, aber Du weißt schon, dass z.B. If, For, Do, While, Goto, Break, Return, Continue, Switch in die Klasse der Control Flow Statements gehören?

Naja wenn mans ganz genau nimmt dann handelt es sich bei obigem um Selection, Iteration und Jump Statements. Die Klasse der "Control Flow Statements" gibts im C++ Standard jedenfalls nicht, auch wenn der Begriff des "flow of control" selbst an einigen Stellen auftaucht, ich denke das ist auch worauf drakon hinweisen wollte. Natürlich weiß jeder was gemeint ist.

Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von »dot« (23.07.2010, 09:02)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

32

23.07.2010, 09:14

Ihr solltet mal aufhören nur das zu lesen, was in der Sprach-Standard-Festlegungs-Fibel für C++ steht und euch mal mit allgemeiner Programmierung und deren Paradigmen und Konstrukten beschäftigen. Denn dort ist ganz klar definiert, was ein Control-Flow-Statement ist, auch wenn das Wort im C++ Buch nicht als Kapitel-Überschrift auftaucht. C++ ist nicht die einzige Sprache und nicht nur das ist gültig, was dort im Buch steht. C++ unterliegt wie alle Sprachen generellen Eigenschaften. Und ohne Control-Flow-Statements wäre die Sprache kein Stück Turing-Complete.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

33

23.07.2010, 09:24

In praktisch allen mir bekannten imperativen Sprachen gibt es Expressions, Statements und Operatoren oder vergleichbare Konzepte, das ist nicht wirklich eine Eigenart von C++...

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

34

23.07.2010, 09:30

Das ist korrekt. Es gibt für Statements aber noch Untergruppen. Eine lautet eben Control-Flow. Und ?: trägt sehr starke Merkmale dieser Gruppe.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

35

23.07.2010, 09:37

Nichts desto trotz handelt es sich bei ?: um einen Operator und kein Statement. Der Unterschied ist wohl in etwa vergleichbar mit dem zwischen Prädikat und Satz...

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

36

23.07.2010, 09:47

Das ist richtig in Bezug auf die Sprach-Theorie. Es bleibt aber im Einsatz eine bedingte Wertzuweisung. Wenn ich ihn natürlich ohne Ziel-Operand benutze (was mir drakon ja angekreidet hat, dass es nicht immer als Wertzuweisung benutzt werden muss), so ist es praktisch gesehen ein Control-Flow-Statement.
Vielleicht versteht Ihr langsam den kleinen Unterschied, den ich die ganze Zeit versuche zu erklären. Und wenn nicht, dann ist es mir jetzt wirklich egal. Ich habe es versucht.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

37

23.07.2010, 09:51

Auf Maschinenebene läuft es natürlich normalerweise auf eine bedinge Zuweisung oder einen bedingten Sprung hinaus, das streitet ja auch keiner ab^^
Auf dieser Ebene existieren aber auch keine Expressions, Statements oder Operatoren. Und nur weil etwas unter bestimmten Umständen zu äquivalentem oder sogar dem selben Maschinencode führt bedeutet das doch noch lange nicht dass es sich um etwas gleichwertiges handelt. Mir ist schon klar was du meinst. Der Conditional Operator hat natürlich gewissermaßen ähnliche Eigenschaften wie ein if Statement, ja man könnte theoretisch sogar immer irgendwie statt einem if einen ?: Ausdruck benutzen und umgekehrt. Es gibt ja auch praktisch unendlich viele Möglichkeiten mit Wörtern und Sätzen etwas auszudrücken. Auf sprachlicher Ebene sind das dennoch zwei grundverschiedene Dinge und um nichts andres gings hier soweit ich das mitbekommen hab...

Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von »dot« (23.07.2010, 10:09)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

38

23.07.2010, 10:12

Mir ging es eben nicht um die sprachliche Ebene oder Definition, sondern die Auswirkung und das Verhalten in der Praxis. Und das hat mit Maschinen-Befehlen auch nichts zu tun, denn diese sind in C++ schließlich nicht definiert.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Crush

Alter Hase

Beiträge: 383

Wohnort: Stuttgart

Beruf: Softwareentwickler

  • Private Nachricht senden

39

23.07.2010, 10:16

Sind wir denn jetzt inzwischen bei UML gelandet?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

40

23.07.2010, 10:28

Äh. Nein.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige