2010-03-26 20 views

Respuesta

10

rect es el nombre de una variable (un objeto en este caso).

Es exactamente como si hubiera dicho:

int rect; 

pero en lugar de int hay una definición de un nuevo tipo, llamado CRectangle. Por lo general, los tipos de clases se declaran por separado y luego utilizados como

CRectangle rect; 

como usted probablemente está familiarizado con, pero es perfectamente legal para declarar un nuevo tipo como parte de una declaración de esa manera.

Y sí, funciona para estructuras:

struct SRectangle { int x, y; } rect; 

De hecho, no tienen ni siquiera para dar el tipo de un nombre si no va a utilizarlo de nuevo:

struct { int x, y; } rect; 

que se llama una "estructura anónima" (y también funciona para las clases).

+0

Es una "estructura sin nombre", no una "estructura anónima". C++ no tiene estructuras anónimas. Ver http://stackoverflow.com/questions/2253878/why-does-c-disallow-unnamed-structs-and-unions –

2

Es un objeto de tipo CRectangle que es global o pertenece a un espacio de nombres según el contexto.

+0

o un alcance de clase o local. – kennytm

1

Declara una instancia. Al igual que:

No hay diferencia entre un class y una struct en C++, excepto struct s por defecto al público (en lo que respecta a los especificadores de acceso y la herencia)

1

La primera y única diferencia entre estructuras y clases es que las estructuras tienen una herencia y acceso predeterminados públicos y las clases usan privado como predeterminado para ambos.

Cuestiones relacionadas