为什么C++在类声明后面要加上";"?

10

我开始学习C++,只是出于好奇,为什么C++要求在类声明的末尾加上";",例如:

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

在像Java这样的编程语言中,分号用于表示语句的结束。

关于什么方面不同?

int i(5);

在C++中,类与分号的关系如何?编译器是否将类视为语句,还是对其有不同的解释?


2
这个问题非常接近于“为什么C++不像Java?”或“C++和Java之间的区别是什么?”。这两个问题都超出了SO的范围。 - Zac Howland
5
为什么这个东西会得到赞成票... - user529758
5
@H2CO3,因为每个编写C++程序的人都会被这个小语法问题所困扰。当你理解某个东西的原因时,就不太可能忘记它了。 - Mark Ransom
6
@H2CO3,StackOverflow的整个意义不就在于学习吗?我不明白为什么这会被认为是离题的。 - Mark Ransom
3
我如何挑起怒气?我只是想知道在类的末尾使用 ";" 的原因,没有抱怨 C++ 做事的方式。请为我翻译。 - sameday
显示剩余2条评论
1个回答

27
因为您也可以在声明中定义变量:
class A {
        ...
} x, y, z;

在类声明末尾加上分号基本上明确地表示我们没有声明这种类型的任何变量。


2
但是当你没有的时候呢? - David G
6
如果没有终止符,编译器如何猜测}后面的东西不是变量? - Wooble
2
@0x499602D2:一个以空结尾的列表和一个以长尾结尾的列表一样需要它们的终止符。 - Ben Voigt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接