我偶然发现了对我来说不寻常的using namespace
指令用法:
给定一个头文件WeirdNamespace.h
:
namespace WeirdNamespace
{
class WeirdClass
{
public:
int x;
void go();
};
}
我有一个匹配的“WeirdNamespace.cpp”:
#include "WeirdNamespace.h"
#include <iostream>
using namespace WeirdNamespace;
void WeirdClass::go()
{
std::cout << "Reached go?!" << std::endl;
}
该类的使用如下:
#include "WeirdNamespace.h"
int main(int argc, const char * argv[])
{
WeirdNamespace::WeirdClass c;
c.go();
}
到目前为止,我从未见过用于避免在 cpp 文件中重新打开命名空间或在方法名称前加上命名空间名称的 using 指令。它是指令的正确用法吗?除了通常的using namespace
警告外,这种情况是否有任何特定的陷阱?