在C ++类中,我们可以用两种样式中的任何一种来编写成员。我们可以将它们放在命名空间块中,或者我们可以完全限定每个。
是否有理由偏爱另一种风格?
头文件看起来像这样(bar.h):
namespace foo
{
class Bar
{
public:
Bar();
int Beans();
};
}
样式1(bar.cpp) - 名称空间块中的声明:
#include "bar.h"
namespace foo
{
Bar::Bar()
{
}
int Bar::Beans()
{
}
}
样式2(bar.cpp) - 完全限定的声明:
#include "bar.h"
foo::Bar::Bar()
{
}
int foo::Bar::Beans()
{
}
所以我的问题是:是否有理由偏爱另一种风格?
答案 0 :(得分:0)
这是James Kanze在回答another similar question时发布的可能答案。 (编辑:注释帖子中的注释,这仅适用于非成员函数)。
首选完全合格的表格(格式2)。
以这种方式编写的函数是明确的定义,而不是声明。
也就是说,使用样式2,如果你不小心定义了一个参数不正确的函数,你会得到一个编译错误提醒你这个事实。
使用样式1,如果定义具有不正确参数的函数,它将定义不同的函数。它编译正常,但是你会得到一个链接器错误,说明该方法没有定义。这可能比样式2产生的编译器错误更难诊断。