using namespace std;
と宣言していた。
これは、C++を学び始めた頃に
"おまじないとして宣言しておくこと"
といわれたので何も考えずに宣言していた。
けど、namespaceってなんだ?
簡単にいうと、
(複数のファイルで構成される)プログラムを書いたときに、名前(関数でも変数でも)の衝突を避けるためのもの
と言う事らしい。
coutって何となく使っていたけれど、これはiostreamをincludeしたら使用できる関数。
けれど、ただ
cout << "hogehoge";
では使用できない。
std::cout << "hogehoge";
とする必要がある。これは、iostream内でcoutがstdという名前空間の中で書かれている事が原因である。
いちいちstd::coutと書いていたら面倒なので、そのファイル内ではcoutと書かれたらstd::coutを使用すると宣言していたのが、
using namespace std;
これによって、
cout << "hogehoge";
としても、そのファイル内ではstd::coutの事なのね、とコンパイラーさんは理解してくれる。
と宣言していた。
これは、C++を学び始めた頃に
"おまじないとして宣言しておくこと"
といわれたので何も考えずに宣言していた。
けど、namespaceってなんだ?
名前空間
namespaceは日本語では名前空間と言われている。
じゃーその実態はなんなのか?
簡単にいうと、
(複数のファイルで構成される)プログラムを書いたときに、名前(関数でも変数でも)の衝突を避けるためのもの
と言う事らしい。
coutって何となく使っていたけれど、これはiostreamをincludeしたら使用できる関数。
けれど、ただ
cout << "hogehoge";
では使用できない。
std::cout << "hogehoge";
とする必要がある。これは、iostream内でcoutがstdという名前空間の中で書かれている事が原因である。
いちいちstd::coutと書いていたら面倒なので、そのファイル内ではcoutと書かれたらstd::coutを使用すると宣言していたのが、
using namespace std;
これによって、
cout << "hogehoge";
としても、そのファイル内ではstd::coutの事なのね、とコンパイラーさんは理解してくれる。