darichter Geschrieben 7. Juni 2008 Geschrieben 7. Juni 2008 Hallo, ich habe vor kurzem angefangen ein bischen C++ zu lernen. Hab mir dazu das Buch "C++ in 21 Tagen" gekauft Dort habe ich gelsen, dass Anweisungen in C++ immer mit einem Semikolon enden und gleichzeitig auch immer Ausdrücke seien. Jetzt stell ich mir die Frage, ob bei der If-Anweisung: 1 If (Ausdruck) 2 { 3 Anweisung; 4 Anweisung; 5 ... 6 } der boolsche Ausdruck in Zeile 1 auch eine Anweisung darstellt? Außerdem gibt es ja da noch die #define-Anweisung(?!) die ja ohne Semikolon endet? Ist es nun eine Anweisung oder nicht? Hmm, da fällt mir noch ne kleine Frage zu nem anderen Thema ein^^ Sind Klassen nun Datentypen(bzw. Objekttypen) und Objekte quasi Variablen, oder ist das nur eine Art Nährung zum besseren Verständnis? würd mich freuen, wenn mir wer weiterhelfen kann mit fragenden Grüßen darichter Zitieren
Cadpax Geschrieben 7. Juni 2008 Geschrieben 7. Juni 2008 Der boolsche Ausdruck kann eine Anweisung darstellen. Überleg dir mal, was passiert, wenn du dort eine Anweisung angibt. if(functionXy()) ... Dan müsste functionXy() einen Wert zurückliefern, den C++ in einer if-Anweisung akzeptiert. z.B. true oder false. ;-) Also prinzipiell ist die If-Anweisung die Anweisung und functionXy() nur ein Parameter für die Anweisung. Zu #define: Ich fand C++ schon immer komisch. k.A. Sind Klassen nun Datentypen(bzw. Objekttypen) und Objekte quasi Variablen Sogesehen ja. M.f.G. Zitieren
darichter Geschrieben 7. Juni 2008 Autor Geschrieben 7. Juni 2008 danke erstmal für die schnelle antwort hast mir echt weitergeholfen! Nochmal für die ganz dummen, angenommen ich schreibe: if(Hans>Wurst)... , dann ist if(Hans>Wurst) die Anweisung und dessen Paramter(Hans>Wurst). Dann hat ja diese Anweisung schon wieder kein Semikolon, womit die Definiton in dem Buch besser "Eine Anweisung hat in der Regel am Ende ein Semikolon, dass das Ende des Befehls dem Compiler signalisiert" oder sowas in der Art,wär zumindest für mich weniger verwirrend gewesen :/ mfg darichter Zitieren
Klotzkopp Geschrieben 7. Juni 2008 Geschrieben 7. Juni 2008 Die Bedingung einer if-Anweisung ist selbst keine Anweisung, sondern laut Standard entweder ein Ausdruck oder ein Deklarator mit Zuweisungsausdruck (wenn ich mal frei übersetzen darf). Wenn dort eine Anweisung erlaubt wäre, könnte man ganze Anweisungsblöcke dort unterbringen. Eine #define-Direktive ist syntaktisch eine Präprozessordirektive, keine Anweisung. Das gilt für jede Zeile, die mit # beginnt. Zitieren
Panke Geschrieben 7. Juni 2008 Geschrieben 7. Juni 2008 Hallo, die <komplexes Thema> in 21 Tagen Serie hat ganz offensichtlich zu Recht keinen guten Ruf. Also: Die Dinger, die mit # anfangen, sind keine Anweisungen, sondern Direktiven. Die kriegt der C++ Compiler aber sowieso nicht zu sehen, also ist das hier erstmal uninteressant. Ein Ausdruck besteht aus min. einem Operanden und eine auf diesen angewendete Operation. Eine Anweisung ist die kleinste unabhängige Einheit eines C++ Programms. Diese werden *in der Regel* mit einem Semikolon abgeschlossen. Die einfachste Anweisung ist die Nullanweisung, diese besteht nur aus einem Semikolon. Ein Ausdruck wird zur Anweisung, wenn er mit einem Semikolon abgeschlossen wird. Die Zusammenfassung von mehreren Anweisungen mit geschweiften Klammern ist wieder eine Anweisung. if(bedingung) anweisung; // hier dein semikolon if(functionXy()) ; Das ist legaler C++ Code. functionXy() ist ein Ausdruck. Dieser muss einen Wert zurückliefern, der implizit nach bool gecastet werden kann. (functionXy ist hier der Operand und () der Operator). Zur letzten Frage: C++ gestattet einem die in die Sprache eingebauten Datentypen, um eigene zu erweitern. Das Verhalten dieser eigenen Datentypen wird in einer Klasse beschrieben. Damit sagst du deinem Compiler wie der Datentyp heißt, wie er dafür Speicher reservieren soll etc. Eine Art Bauplan. Ein Objekt ist eine Instanz dieser Klasse. Das konkrete Haus zum Bauplan quasi. Zitieren
darichter Geschrieben 7. Juni 2008 Autor Geschrieben 7. Juni 2008 danke, dass ihr mir ein bisschen licht ins dunkle gebracht habt! kennt ihr vielleicht ein c++ Buch für Anfänger, dass ihr empfehlen könnt, vor allem eins, das die Bergriffe auch richtig erklärt? hab da noch ein anderes, etwas älteres Buch namens1x1 der c++ Programmierung. Demnach gilt eine Variable als defniert, "wenn ihr ein Wert zugewiesen wurde". In meine Augen entspricht die Definion einer Variable in C++ einer Deklaration, da beim deklarieren gleich Speicherplatz reserviert wird(=Definiton). Die Wertzuweisung ist doch viel mehr eine Initialisierung :/ mfg darichter Zitieren
Panke Geschrieben 8. Juni 2008 Geschrieben 8. Juni 2008 Unterschied Deklaration, Definition, Initialisierung C++ Primer, Die Kunst der Programmierung in C++ (der Titel ist etwas hoch gegriffen), C++ Einführung und professionelle Programmierung kann ich empfehlen. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.