使用以下代码,我得到错误:
对“p”的引用不明确
为什么会这样?我怎样才能摆脱它?我想得到“79”作为输出。有人可以请一些光。谢谢你的时间!
int p=3;
namespace {int p=7;}
namespace {int q=9;}
main()
{
cout << p << q;
}
使用以下代码,我得到错误:
对“p”的引用不明确
为什么会这样?我怎样才能摆脱它?我想得到“79”作为输出。有人可以请一些光。谢谢你的时间!
int p=3;
namespace {int p=7;}
namespace {int q=9;}
main()
{
cout << p << q;
}
删除这个
int p=3;
或这个
namespace {int p=7;}
或者,您可以将第一个声明放在命名空间内:
namespace foo
{
int p=3;
}
或者给匿名命名空间一个名字:
namespace bar {int p=7;}
接着
main(){
std::cout <<bar::p << q;
}
@juanchopanza 提出了一个很好的解决方案。这是另一个:使用限定名称来引用在全局命名空间中声明的变量:
#include <iostream>
int p=3;
namespace {int p=7;}
namespace {int q=9;}
int main()
{
std::cout << ::p << q;
// ^^^
}