我有以下C++类。C++中的命名空间冲突
xyz.h
class xyz {
public:
static int abc();
};
qwe.h
#include xyz.h
namespace xyz {
class qwe{
public:
void bnm() {
int value = xyz::abc();
}
};
}
我怎么在这里访问xyz::abc()
。我在这里收到汇编错误,说abc
不是xyz
的成员。我理解它试图在xyz
命名空间中搜索abc
方法的原因,而理想情况下它应该是xyz
类中的静态方法。
有没有办法在不改变命名空间名称的情况下解决这个问题?
如果你使用会发生什么定义类之前的命名空间别名? 'namespace xyz xyzns;'应该使'xyzns'成为'xyz'命名空间的别名。 –