くろのすけです。
Visual C++ 2005 Express Editionを使って、C++/CLIプログラミングを
勉強しています。
名前空間というワードがたびたび出てきます。
当初下記サンプルの
System;
System::ComponentModel;
System::Collections;
System::Windows::Forms;
System::Data;
System::Drawing;
だと思っていましたが、"Test"も名前空間のようです。
「名前空間」のなかに「名前空間」を定義したのか?と思ったのですか、
どうなのでしょうか?
どうもすっきりしません。
わかる方、ぜひ教えてください!!
+-+--+-+--+-+--+-+--サンプル+--+-+--+-+--+-+--+-+--+-+--
namespace Test {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
public ref class Form1 : public System::Windows::Forms::Form
{
/* XXXXXXXX */
}
}
+-+--+-+--+-+--+-+--+-+--+-+--+-+--+-+--+-+--+-+--+-+--+-+--
namespace Test { ... }
とすると、Test名前空間が定義され、{ }内で宣言した名前(クラス名、関数
名等)がTest名前空間のメンバとなります。
using namespace System;
とすると、これ以降でSystem名前空間に含まれる名前がスコープ解決演算子
による限定(System::)を省略しても使用できるようになります。
System名前空間は、これ以前にどこかで定義されているものです。
詳細/厳密には、名前空間,namespace,using などをキーワードとして調
べてください。
iijima様
早速の対応、感謝します。
>namespace Test { ... }
>とすると、Test名前空間が定義され、{ }内で宣言した名前(クラス名、関数
>名等)がTest名前空間のメンバとなります。
はい。
>using namespace System;
>とすると、これ以降でSystem名前空間に含まれる名前がスコープ解決演算子
>による限定(System::)を省略しても使用できるようになります。
そうですね。
>System名前空間は、これ以前にどこかで定義されているものです。
そうゆうことですか。System名前空間は既に定義されていて
ここでは、省略可能にするためこうしているだけ、ということですね。
>詳細/厳密には、名前空間,namespace,using などをキーワードとして調
>べてください。
はい。わかりました。
調べてみます。
ありがとうございます。
iijima様
理解できました。
ありがとうございました。