gpt4 book ai didi

c++ - 定义和实现中的命名空间

转载 作者:太空狗 更新时间:2023-10-29 20:31:41 24 4
gpt4 key购买 nike

如果有一个头文件,比如说“test.h”包括

namespace test
{
enum ids
{
a = 1,
b = 2,
c = 3,
d = 30
};

char *names[50];
};

和一个源文件,“test.cc”基本上只包含

test::names[test::a] = "yum yum";
test::names[test::c] = "pum pum";
// ...

将实现也包装在命名空间内不是更有意义吗?

我会说它会,因为它是在头文件的所有实现之后,所以将实现包含在与头文件相同的命名空间中而不用手动为每个变量添加前缀 test::< 是有意义的,并在使用外部值时添加前缀。

这是一个C++菜鸟的看法,聪明人会怎么说?

最佳答案

您也可以在 test.cc 中指定命名空间。为此,您需要执行以下操作:

#include "test.h"

namespace test
{
...
names[a] = "yum yum";
names[c] = "pum pum";
...
}

您可以交替使用 using,如下所示:

#include "test.h"

using test;

...
names[a] = "yum yum";
names[c] = "pum pum";
...

我一般采用第一种方式。

关于c++ - 定义和实现中的命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3695399/

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