如果一个人有一个头文件,假设“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++新手的观点,聪明人在这里会说些什么?
是的,我知道你可以这样做..这只是一个问题,“这是否是好的做法,或者你是否更好的手动添加前缀”:) – LukeN 2010-09-12 16:07:04
@LukeN:作为利马豆下面提到,这是一个问题的偏好和一致性。我更喜欢,并且想认为我一贯使用第一种方法。我可以将案例明确化(就像你在代码中一样),这可能是最合理的,因为它明确要求开发人员写出他们的意思,而不是更隐含。缺点是它需要更多的打字,因此可能会导致手腕和手指的早期关节炎或可能导致心皮隧道综合征;) – andand 2010-09-13 03:12:40
@LukeN:我也赞成包装,请注意'使用'方法是皱眉(即使在源文件)。 – 2010-09-13 08:33:01