课程和结构后的分号

sha*_*kin 7 c++ syntax language-design

可能重复:
为什么我必须在C++的类声明结尾处加一个分号?

发现重复,请投票结束.

为什么类和结构必须用C++中的分号结束?

如下面的代码所示:

class myClass
{



};

struct muStruct
{

};
Run Code Online (Sandbox Code Playgroud)

Java或C#中不需要此语法.为什么C++解析器需要它?

Dig*_*oss 7

这就是为什么...

int a,b,c,d;
int main(void) {
    struct y {
  }; a, b, c, d;
    struct x {
  } a, b, c, d;
}
Run Code Online (Sandbox Code Playgroud)

两个不同的陈述,两个完全不同的含义,都是合法的C/C++,唯一的区别是;在struct声明之后.


Jon*_*ehl 5

因为在 the 后面的下一个词}可能会声明一个所述类型的变量。这是来自 C 的遗物:

struct S { int a; } s;
s.a;
Run Code Online (Sandbox Code Playgroud)