C++ 允许在类定义中使用不必要的分号的目的
考虑以下计划:C++ 允许在类定义中使用不必要的分号的目的,c++,syntax,C++,Syntax,考虑以下计划: #include <iostream> struct Test { int a; Test(int s) : a(s) { }; // Observe this semicolon int geta() { return a; } }; int main() { Test t(3); std::cout<<t.geta()<<'\n'; } 那么,允
#include <iostream>
struct Test
{
int a;
Test(int s) : a(s)
{ }; // Observe this semicolon
int geta()
{
return a;
}
};
int main()
{
Test t(3);
std::cout<<t.geta()<<'\n';
}
那么,允许这个不必要的分号的目的是什么?这有什么用吗?语言标准是否允许使用?< /P> < P>半字节(;)是C++中的空声明。你可以看到
C++类允许在大括号内执行以下操作:
因此,通过上面的规则,C++中允许使用空声明。这就是为什么你有分号。
这不就是一个空命令,一个“什么也不做”的命令吗?@Coffee命令在类范围内是不允许的。他说的是类范围,而不是函数范围。一个分号被归类为声明语句,而不是“dosomething”语句。int geta()
{
return a;
}; // This also compiles fine without any error or warnings in both g++ & clang