Più superficiale. In C, quando si definisce una struttura:
struct x {
int member;
char member2;
};
Per utilizzare questo, è necessario utilizzare struct x whatever
. Se si desidera utilizzare x
come un nome di per sé (senza il struct
precede) è necessario utilizzare un typedef
:
typedef struct x {
int member;
char member2;
} x;
In C++, tuttavia, la prima (senza il typedef
) ha più o meno lo stesso effetto di il secondo (entrambi definiscono x
in modo da poterlo utilizzare da solo, senza che sia struct
precedente). In C++, uno class
è essenzialmente lo stesso di struct
, tranne che per impostazione predefinita è private
anziché public
(sia per i membri che per l'ereditarietà).
L'unico posto in cui c'è una differenza è se non esiste una definizione dello class
nell'ambito di applicazione nel punto della dichiarazione della funzione.
fonte
2010-05-14 18:52:29
ho visto questo anche in un membro della classe dichiarazione e stavo impazzendo cercando di scoprire cosa significasse. 'class Foo { private: class Bar * pointerToBar; } ' – Vicro