struct
-
Hallo,
ich habe eine hoffentlich simple Frage, aber die Antwort konnte ich nirgens finden.Wo ist der Unterschied zwischen den drei Versionen und wofür benutzt man welche?
struct a { }; struct { } a; typedef struct { } a;Vielen Dank für eure Mühe, Niko
-
naja ich denke mal, man benutzt keine der drei versionen, weil alle
falsch bzw. unvollständig sind
schau dir lieber nochmal in einem tutorial nach, wie die strukturen
funktionieren...
-
Wenn du meinst, das die Strukturen nichts enthalten, das ist mir auch klar, tue in jede von mir aus einen int rein, wenn dir das besser gefällt.
MFG, Niko
-
a: Erstellt deine Struktur (in C++ das gleiche wie eine Klasse) mit dem Namen 'a'
b: Erstellt ein Objekt der Struktur (Struktur ist anonym, hat also keinen nametlich bekannten Typ -> Du kannst die Struktur nicht mehrfach anlegen, übergeben, etc...)
c: Veraltete Methode für a (Aus den Zeiten von C)
-
Ah so, vielen Dank für die schnelle Hilfe!
MFG, Niko
-
Variante3 ist kein standard C (und somit C++)
richtig wäre
typedef struct a_ { }a;
-
Kompatibilität schrieb:
Variante3 ist kein standard C (und somit C++)
Doch.
richtig wäre
typedef struct a_ { }a;Du kannst den Unterstrich beim ersten a auch ohne Probleme weglassen.
-
Wie kann man bei Variante 2 eine Ctor und Dtor definieren?
mfg.
-
gar nicht - eine anonyme struct kannst du höchstens zur Zusammenfassung von Variablen verwenden.
-
Nun ja! Strukturen sin benutzerdefinierte Datentypen,
Syntax:
struct[Typname]{Definition der inneren Daten}[Variableliste];Beispiel:
enum farbtyp {rot, gelb, gruen}; struct Punkt {int x; int y; bool istSichtbar; farbtyp dieFarbe;} p; //p ist ein Punkt Punk q; //q auch //Zugriff p.x = 270; p.y = 20; //koordinaten von p p.istSichtbar = false; p.dieFarbe = gelb;