gpt4 book ai didi

c++ - 一个 C++ 类函数应该以 } 结尾吗?或者只有一个}?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:56:53 26 4
gpt4 key购买 nike

关于 C++ 语法的基本问题。

C++ 函数应该以 ; 结尾吗?还是没关系?

或者这两个例子有什么区别?

有结局;

void Test :: print()
{
...
};

没有;

void Test :: print()
{
...
}

我见过有和没有的 C++ 代码,但我不明白其中的区别。

/谢谢


更新:

在这种情况下;应该避免,因为它没有做任何有用的事情,甚至可能在将来成为一个问题。

最佳答案

在类主体之外(其中函数定义可以选择性地后跟单个 ;),函数定义由 复合语句 结束- 这是结束 }。在命名空间范围内,函数定义 的右大括号之后的下一个标记必须构成下一个声明的一部分。

在 C++03 中,没有 empty-declaration 这样的东西,所以放置 ; 是非法的,尽管被许多实现所接受。 (尽管 C++03 simple-declaration 的语法似乎允许缺少 decl-specifier-seq 和缺少的 init-declarator-list,只留下一个 ;,在标准的 7 [dcl.dcl]/3 中有一个语义规则禁止两个可选部分被遗漏。)

In a simple-declaration, the optional init-declarator-list can be omitted only when declaring a class (clause 9) or enumeration (7.2), that is, when the decl-specifier-seq contains either a class-specifier, an elaborated-type-specifier with a class-key (9.1), or an enum-specifier.

C++0x 引入了一个empty-declaration(这是一个没有效果的声明),因此你可以在命名空间范围内拥有任意数量的流氓;尽管没有充分的理由这样做。

关于c++ - 一个 C++ 类函数应该以 } 结尾吗?或者只有一个}?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5487849/

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