I持って、この次のシナリオこの名前空間の問題を解決するにはどうすればよいですか?
namespace A {
//...
class A {
public:
static void foo();
}
//...
} //namespace A
私がしようとしたとき、私は「fooはAのメンバーではありません」コンパイラが文句)(:: fooで別のクラスからのfoo()をアクセスしようとA :: A :: foo()を使用すると、未解決の外部について不平を言います。
どうすればこの問題を解決できますか?私は同じ名前空間内のクラスを作ることはかなり愚かで混乱につながると思いますが、コードの作成者ではなく、名前空間やクラス名を変更するとあまりにも多くの問題を引き起こすでしょう。
[C++で同じ名前を共有するクラスと名前空間](http://stackoverflow.com/questions/4070915/classes-and-namespaces-sharing-the-same-name-in-c)の可能な複製。 –
未解決の外部に関するエラーは、構文ではなくA :: A :: foo()を実装しなかったということです。実際、コンパイラはあなたが望むものを見つけました! 'foo'の実装で実装、コンパイル、リンクしましたか? – templatetypedef
コードページに 'A :: A :: foo()'と 'foo'の実装を使った例です:http://codepad.org/3muVCfgM –