@WTFAYD

Почему после определения класса ставится точка с запятой, а после определения функции — нет?

Суть вопроса очень проста - почему после определения класса ставится точка с запятой, а после определения функции - нет? Я сначала подумал, что это из-за того, что в одном месте происходит и объявление, и определение, но, с другой стороны, с функцией такая же ситуация.
struct Y
{
    // ...
}; 

void someFoo() 
{
    // ...
}
  • Вопрос задан
  • 688 просмотров
Решения вопроса 1
fzfx
@fzfx
18,5 дм
определение функции всегда заканчивается после символа }, а определение класса - не всегда.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Потому что по сути, объвление класса - это объявление переменно (я не совсем правильно выражаюсь, но допустим).

А в с++, когда пишут
int a;

ставят точку с запятой.

точно так же:
class Foo 
{
int a_;
} foo;


только име переменно писать не обязательно.

Суть приблизительно такая.
Ответ написан
Комментировать
@Mercury13
Программист на «си с крестами» и не только
Это пошло ещё с Си. Так что, простите, ничего плюсового не будет, только «няшная сишка».
// Переменная безымянного типа
struct {
  int x, y;
} point;

// Синоним для типа: вместо struct _Point можно писать просто Point.
typedef struct _Point {
  int x, y;
} Point;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы