在编写一些代码时,我遇到了这个问题:
#include <iostream><p></p>
<p>class random
{
public:
random(){ std::cout << "yay!! i am called \n" ;}
};</p>
<p>random r1 ;</p>
<p>int main()
{
std::cout << "entry!!\n" ;
static random r2;
std::cout << "done!!\n" ;
return 0 ;
}
</p>
当我尝试编译这段代码时出现错误
错误:“random”没有命名类型。
当我为类使用一些不同的名称时,代码工作正常。
似乎 random
是在其他地方定义的(尽管编译器消息不是很有用)。
我的问题是如何确保我使用的名称不会与包含文件中使用的名称冲突。我曾尝试使用 namespace ,但这会导致调用时出现歧义。
有什么见解吗?
[编辑]
我使用 namespace 作为 using namespace myNSpace
但是当我将它用作 use myNSpace::random
时,它工作正常。
最佳答案
使用命名空间
namespace myNamespace
{
class random
{
public:
random(){ std::cout << "yay!! i am called \n" ;}
};
}
myNamespace::random r1;
关于c++ - C++ 中的名称冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1847822/