- 追加された行はこの色です。
- 削除された行はこの色です。
第12回は
名前空間について説明します
といっても大したことはないんだけど・・・(ぇ
名前空間というのは
たとえば、プログラムが大きくなって
同じ変数名とか同じ関数名とかが
被ったりすることがあります
それを回避するために
変数、構造体、クラス、関数などに
名前空間をつけて(名前空間で囲って)
被りにくくします
いままで
#include <iostream>
using namespace std;
としてきました
これは、名前空間stdを省略しますよっていうことだったのです
つまり、
これまで使ってきたcoutやendlなどは
std名前空間定義されているため
次のように書くのが正式(?)です
std::cout << std::endl;
自分で名前空間を作成するときは
namespace 名前空間名{
// 変数やら構造体やらクラスやら関数やらをこの中に定義
};
のように定義します
具体例は下に示します。
#include <iostream>
// 自作名前空間
namespace MyStd{
static const int global_int = 100;
struct MyData{
int a;
char b;
};
class MyClass{
public:
MyClass(){}
~MyClass(){}
void Test(){
//cout << "" << endl; // 省略できませーん
using namespace std;
cout << "省略可能です" << endl;
}// stdが省略できるのはここまで
};
};
// 名前空間の省略(グローバル領域)
// 省略するには先に名前空間が定義されてないといけない
using namespace MyStd;
int main(){
// coutやendlはstd名前空間で定義されている
std::cout << "stdを付けるのが正式です" << std::endl;
// 名前空間で囲んであるやつは
// 名前空間::
// でアクセス
int integer1 = MyStd::global_int;
MyStd::MyData mydata1;
MyStd::MyClass myclass1;
// using namespaceを使用すると省略できます
// グローバル領域で使うとファイル内全域省略可能です
int integer2 = global_int;
MyData mydata2;
MyClass myclass2;
myclass1.Test();
return 0;
}
#vote((^ω^)わかったお[3],普通[0],。(`ω´#)。わかりにくぃぜぇえええええ[0])
vote((^ω^)わかったお[8],普通[0],。(`ω´#)。わかりにくぃぜぇえええええ[0])