Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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. :D

Sind Klassen nun Datentypen(bzw. Objekttypen) und Objekte quasi Variablen

Sogesehen ja.

M.f.G.

Geschrieben

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

Geschrieben

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.

Geschrieben

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.

Geschrieben

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

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...