c++入門-namespace
3361 ワード
namespaceはC++の名前の競合を解決するために導入された.名前の衝突とは何ですか?たとえば、ファイルx.hにはクラスMyClassがあり、ファイルy.hにはクラスMyClassがあり、ファイルz.cppではx.hとy.hファイルを同時に参照します.明らかに、通常の方法ではだめですが、どうすればいいですか.namespaceを導入すればよい.例:
x.hの内容は
y.hの内容は
そしてz.cppにx.hとy.hを導入する
名前空間は実質的に役割ドメインである.上の例で名前空間の役割がわかるでしょうhttps://blog.csdn.net/quyafeng2011/article/details/68921750
x.hの内容は
// x.h
namespace MyNamespace1
{
class MyClass
{
public:
void f();
private:
int m;
}
};
y.hの内容は
// y.h
namespace MyNamespace2
{
class MyClass
{
public:
void f();
private:
int m;
}
};
そしてz.cppにx.hとy.hを導入する
// z.cpp
#include"x.h"
#include"y.h"
void z::f()
{
// x.h MyClass x
MyNamespace1::MyClass x;
// x.h MyClass x
MyNamespace2::MyClass y;
// x.h f
x.f();
// y.h f
y.f();
}
名前空間は実質的に役割ドメインである.上の例で名前空間の役割がわかるでしょうhttps://blog.csdn.net/quyafeng2011/article/details/68921750