次のコードでは、エラーが発生します。
「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 は良い解決策を提案しています。もう 1 つの例を次に示します。修飾名を使用して、グローバル名前空間で宣言された変数を参照します。
#include <iostream>
int p=3;
namespace {int p=7;}
namespace {int q=9;}
int main()
{
std::cout << ::p << q;
// ^^^
}