gpt4 book ai didi

c++ - 匿名命名空间

转载 作者:IT老高 更新时间:2023-10-28 23:27:53 24 4
gpt4 key购买 nike

这两者有什么不同?

cpp 文件:

namespace
{
int var;
}

int var;

如果两者都放在 cpp 文件中?我们将一个变量放在匿名命名空间中以便它可以仅对该文件是私有(private)的,这不正确吗?但是如果我们把一个全局变量放在一个 cpp 文件中是不是这个变量也是私有(private)的,因为你从不包含 .cpp 文件?

最佳答案

在您的第二种情况下,当您不使用匿名命名空间时,如果任何其他 cpp 文件声明了 extern int var;,它将能够使用您的变量。

如果使用匿名命名空间,那么在链接时,其他 cpp 文件将生成 undefined reference 错误。

关于c++ - 匿名命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3363684/

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