2010-03-26 8 views

Odpowiedz

10

rect to nazwa zmiennej (w tym przypadku obiekt).

Jest dokładnie tak, jak gdyby powiedział:

int rect; 

wyjątkiem zamiast int jest zdefiniowanie nowego typu, zwany CRectangle. Zazwyczaj, typy klasy zadeklarowane są oddzielnie, a następnie wykorzystywane jako

CRectangle rect; 

jak jesteś prawdopodobnie zna, ale jest to całkowicie legalne zadeklarować nowy typ w ramach zgłoszenia takiego.

I tak, to działa na elemencie:

struct SRectangle { int x, y; } rect; 

W rzeczywistości nawet nie dać rodzaju nazwy, jeśli nie zamierzasz go używać ponownie:

struct { int x, y; } rect; 

która nazywa się "anonimową strukturą" (i działa również na zajęcia).

+0

To jest "nienazwana struktura", a nie "anonimowa struktura". C++ nie ma anonimowych struktur. Zobacz http://stackoverflow.com/questions/2253878/why-does-c-disallow-unnamed-structs-and-unions –

2

Jest to obiekt typu CRectangle, który jest globalny lub należy do przestrzeni nazw w zależności od kontekstu.

+0

lub klasa lub zasięg lokalny. – kennytm

1

Deklaruje instancję. Podobnie jak:

Nie ma różnicy między class i struct w C++, z wyjątkiem struct s domyślnie publiczne (w odniesieniu do specyfikatorów dostępu i dziedziczenie)

1

jedna i jedyna różnica między kodowanym i Klasy mają domyślne dziedziczenie i dostęp do klas, a klasy używają prywatnych jako domyślne dla obu.

Powiązane problemy