struct & typedef
-
öhm
struct obj1 { }; struct { } obj2; obj1 test1; obj2 test2;
das ist falsch und geht nicht!
Wie Bashar bereits erklärt hat
struct obj1 { };
nun hast du einen neuen Typen geschaffen, der obj1 genannt wird.
obj1 test1;
nun hast du ein Objekt test1 vom Typ obj1 angelegt
struct { } obj2;
nun hast du ein Objekt obj2 von einem anonymen Typ angelegt.
nun zum typedef:
typedef struct { } obj2;
ist dagegen was anderes und wird in C benutzt, da struct in C ein wenig anders arbeitet.
Und ich würd statt struct lieber class benutzen.
wieso?
-
Eigentlich nur weil struct mehr so im Verruf steht C zu sein und class in Verbindung mit C++/OOP steht.
Ist zwar abgesehen vom default public/default private kein Unterschied beim programmieren, aber strukt ist in meinen Augen irgendwie ein Überbleibsel aus C.
-
Original erstellt von Bashar:
Das zweite funktioniert nicht.Doch, ich habe den Spaß in der *.h stehn und rufe es in der *.cpp auf
Bsp.:typedef struc { }object;
und dann der Aufruf
object ding;
Also bei mir geht es so.
-
Sag mal, willst du mich ver*****en? Das, von dem ich gesagt habe, dass es nicht geht, war ohne typedef.
-
Tschuldigung, dann habe ich mich wohl nicht richtig ausgedrückt.
-
Also ich benutze class für komplette Programmteile um sie zu kapseln und struct, so wie es unter C gedacht war, zur reinen Kapselung von Datentypen. Ich halt das auch für recht sinnvoll, weil dafür wurde das ganzeja geschaffen, also warum ne klasse nehmen und da noch public vorschreiben müssen??
das mit dem "typedef struct{}foo;" und "struct foo{};" ist auch schonmal in nem anderen Thread erklärt worden -> Suchefunktion wens interessiert
[ Dieser Beitrag wurde am 21.06.2003 um 03:05 Uhr von THE_FreaK editiert. ]
-
also warum ne klasse nehmen und da noch public vorschreiben müssen??
Du willst mir also sagen, das du komplett private Klassen hast? Und wofür verwendest du die dann?
-
er meint sicher
class a { public: int foo; int bar; };
vs.
struct a { int foo; int bar; };
ich benutze immer structs, wenn es entweder keine private/protected Elemente gibt.
-
ich benutze immer structs, wenn es entweder keine private/protected Elemente gibt.
Wo ist das oder?
-
@kingruedi Genau das meinte ich.
@Helium Genasu verkehrtherum interpretiertIch benutze structs für Variablenansammlungen. Bei ner Klasse müsste ich sonnst entweder public drüber schreiben oder Methdoen zur verwaltung basteln, was ich beides für quatsch halte.