Czy to naprawdę ważne, aby wstawić tam ten średnik i dlaczego?
Tak. To może być przydatne kiedyś.
Można zdefiniować struct, i może zadeklarować obiekt jako:
struct A
{
//members
} obj;
obj
jest obiektem typu A
i zadeklarować to tak jak pokazano powyżej. To właśnie w ten sam sposób można umieścić średnik po zmiennych deklarujących, takie jak:
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
dwa Oto pierwsze deklaracje wyglądają bardzo znajomo, ale ostatni wygląda nieco nieznane, jak to określa się na anonimowe struct, a jednocześnie deklaruje obiektu o nazwie point
nienazwanej struktury.
W dolnej linii umieszczamy średnik po zadeklarowaniu obiektów równomiernie, bez względu na sposób deklarowania obiektów, bez względu na ich typ.
Nie tylko, że można nawet typedef
w jednolity sposób:
typedef int my_int;
typedef std::string my_string;
typedef struct {int x,y,z;} my_point;
Teraz wszystkie te my_int
, my_string
, a my_point
są typy.
Ale kiedy nie wykonujesz żadnej z nich (tzn. Nie deklarujesz obiektów, ani nie określasz typedefs), po prostu opuszczasz miejsce jako takie, puste, bez deklaracji/definicji. Ale należy zauważyć, że daje on interesującą i użyteczną funkcję przez cały czas.
Definicje funkcji nie wymagają średnika i nadal są liczone jako definicje. –
Prawda, podobnie jak przestrzenie nazw. Tak, trochę nadgubkulowałem ... – rodrigo