いくつかのコードを書いているときに、この問題に遭遇しました:
#include <iostream>
class random
{
public:
random(){ std::cout << "yay!! i am called \n" ;}
};
random r1 ;
int main()
{
std::cout << "entry!!\n" ;
static random r2;
std::cout << "done!!\n" ;
return 0 ;
}
このコードをコンパイルしようとすると、エラーが発生します
error: ârandomâ does not name a type.
クラスに別の名前を使用すると、コードは正常に機能します。
は別の場所で定義されているようrandom
です (ただし、コンパイラ メッセージはあまり有益ではありません)。
私の質問は、使用している名前が含まれているファイルで使用されている名前と衝突しないことをどのように保証できるかです。名前空間を使用してみましたが、呼び出し時にあいまいさが生じます。洞察はありますか?
[編集]
名前空間を as としてusing namespace myNSpace
使用しましたが、use myNSpace::random
それを使用すると正常に機能しました。