gpt4 book ai didi

c++ - 静力学需要上课吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:34:14 24 4
gpt4 key购买 nike

实际上我直到现在才尝试过。是否可以在没有类的情况下仅在 namespace 范围内使用静态?为什么不呢?

namespace MyNamespace
{
static int a;
}

assign something, somewhere else....

最佳答案

附录 D(兼容性特性)[C++03]

D2: The use of the static keyword is deprecated when declaring objects in namespace scope.

static 命名空间范围(全局或其他)的变量具有内部链接。这意味着,它不能从其他翻译单元访问。它在声明它的翻译单元内部。

更新
当您将变量声明为static 时,这意味着它的范围仅限于给定的翻译单元。没有 static 范围是全局的。

当您将变量声明为 static inside a .h file(在或不在命名空间内;无关紧要),并将该头文件包含在各种 .cpp 中文件时,静态变量将在每个 .cpp 文件中成为局部范围。所以现在,每个包含该 header 的 .cpp 文件都将拥有该变量的自己的拷贝。

如果没有 static 关键字,编译器将只生成该变量的一个拷贝,因此只要您将头文件包含在multiple .cpp 文件链接器会提示多个定义

关于c++ - 静力学需要上课吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29963757/

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