gpt4 book ai didi

c++ - 类声明大括号后的分号

转载 作者:IT老高 更新时间:2023-10-28 12:09:07 28 4
gpt4 key购买 nike

在 C++ 类中,为什么要在右大括号后面加上分号?我经常忘记它并得到编译器错误,因此浪费了时间。对我来说似乎有些多余,这不太可能。人们真的会做这样的事情吗:

class MyClass
{
.
.
.
} MyInstance;

我从结构和枚举的 C 兼容性角度得到它,但由于类不是 C 语言的一部分,我猜它主要是为了保持相似声明构造之间的一致性。

我所寻找的更多是与设计原理相关,而不是能够改变任何东西,尽管一个好的代码完成 IDE 可能会在编译之前捕获这一点。

最佳答案

link @MichaelHaren 提供的似乎提供了根本原因。分号(正如其他人指出的那样)是从 C 继承的。但这并不能解释为什么 C 首先使用它。讨论包括一个例子的 gem :

struct fred { int x; long y; }; 
main()
{
return 0;
}

除非另有声明,否则旧版本的 C 具有来自函数的隐式 int 返回类型。如果我们在结构定义的末尾省略 ;,我们不仅定义了一个新类型 fred,而且还声明了 main() 将返回 fred 的一个实例。 IE。代码会这样解析:

struct fred { int x; long y; } main()
{
return 0; /* invalid return type, expected fred type */
}

关于c++ - 类声明大括号后的分号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/785686/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com