¿Es realmente importante poner ese punto y coma allí y si, por qué?
Sí. Esto puede ser útil alguna vez.
Se puede definir una estructura, y puede declarar un objeto como:
struct A
{
//members
} obj;
obj
es un objeto de tipo A
, y declarar esto sólo como se muestra arriba. Es de la misma manera que puso punto y coma después de la declaración de variables, tales como:
int i; //declares i of type int
std::string s; //declares s of type std::string
struct {int x,y,z;} point; //declares point of an unnamed struct type
dos Aquí primeras declaraciones muy familiar, pero el último se ve un poco extraño, ya que define una estructura sin nombre, y al mismo tiempo declara un objeto llamado point
de la estructura sin nombre.
La conclusión es que pone un punto y coma después de declarar objetos de manera uniforme, sin importar cómo declare los objetos, sin importar cuáles sean sus tipos.
No sólo eso, incluso se puede typedef
de manera uniforme:
typedef int my_int;
typedef std::string my_string;
typedef struct {int x,y,z;} my_point;
Ahora todos estos my_int
, my_string
, y my_point
son tipos.
Pero cuando no hace ninguno de ellos (es decir, no declarando objetos ni definiendo typedefs), simplemente deja el lugar como tal, en blanco, sin declaración/definición alguna. Pero el punto a tener en cuenta es que te proporciona una característica interesante y útil todo el tiempo.
Las definiciones de las funciones no necesitan el punto y coma, y aún cuentan como definiciones. –
Cierto, y también lo son los espacios de nombres. Sí, he generalizado un poco ... – rodrigo