在命名空间中包装header和cpp文件内容,或者只包装头内容然后在cpp文件中使用命名空间之间有什么区别吗?
差异我的意思是任何排序性能损失或稍微不同的语义,可能会导致问题或我需要注意的任何事情.
例:
// header
namespace X
{
class Foo
{
public:
void TheFunc();
};
}
// cpp
namespace X
{
void Foo::TheFunc()
{
return;
}
}
Run Code Online (Sandbox Code Playgroud)
VS
// header
namespace X
{
class Foo
{
public:
void TheFunc();
};
}
// cpp
using namespace X;
{
void Foo::TheFunc()
{
return;
}
}
Run Code Online (Sandbox Code Playgroud)
如果没有差异,首选形式是什么?为什么?
vpr*_*jan 35
命名空间只是一种破坏函数签名的方法,因此它们不会发生冲突.有些人喜欢第一种方式而有些人更喜欢第二种方式.两个版本对编译时性能没有任何影响.请注意,名称空间只是一个编译时实体.
使用命名空间时出现的唯一问题是我们有相同的嵌套命名空间名称(即)X::X::Foo.无论是否使用关键字,这样做会造成更多混淆.
没有性能损失,因为结果可能是相同的,但是Foo如果你有Foo不同的命名空间,那么将你的命名空间隐含地引入了歧义.确实,你可以获得你的代码fubar.我建议不要using为此目的使用.
和你有一个流浪{后using namespace;-)
| 归档时间: |
|
| 查看次数: |
84290 次 |
| 最近记录: |