可能重复:
Why must I put a semicolon at the end of class declaration in C++?
找到duplicate,请投票结束。
为什么类和结构必须用C ++中的分号结束?
如下面的代码所示:
class myClass
{
};
struct muStruct
{
};
Java或C#中不需要此语法。为什么C ++解析器需要它?
答案 0 :(得分:6)
int a,b,c,d;
int main(void) {
struct y {
}; a, b, c, d;
struct x {
} a, b, c, d;
}
两个不同的陈述,两个完全不同的含义,都是合法的C / C ++,唯一的区别是结构声明后的;
。
答案 1 :(得分:4)
因为}
之后的下一个单词可以声明所述类型的变量。这是C:
struct S { int a; } s;
s.a;
答案 2 :(得分:2)
以下内容在C ++中是合法的:
struct MyStruct
{
} anInstanceOfMyStruct;
struct
{
} anInstanceOfAnUnnamedStruct;
您需要分号来表示您没有创建新实例。 C#和Java的语言设计者显然不认为允许这是他们语言的有用补充。