Почему у С++ есть ";" после объявления класса

Я начинаю изучать С++ и просто из любопытства, почему С++ требует, чтобы вы поставили ";" в конце декларации класса например:

class A
{
   /*...*/
};

В таких языках, как java, это означало конец оператора.

Чем отличается

int i(5);

и класс выше относительно полуколонии в С++? Компилятор рассматривает класс как инструкцию или имеет для него другую интерпретацию?

Ответ 1

поскольку вы также можете определить переменные в объявлении:

class A {
        ...
} x, y, z;

Заканчивающиеся объявления классов в точке с запятой в основном говорят явно, что мы не объявляем никаких переменных этого типа.