内容へ移動
C++プログラマのためのC++/CLI入門
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
現在位置:
TOP
»
cli
»
staticコンストラクタ
cli:staticコンストラクタ
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
{{indexmenu_n>22}} ====== staticコンストラクタ ====== ref classやvalue classやinterfaceはそのstaticなメンバーを初期化するためにstaticコンストラクターを定義することができます。ただし以下の制限があります。 * staticコンストラクタはprivateでなければなりません。 * staticコンストラクタはランタイムにより自動的に呼ばれます。プログラムから明示的に呼び出すことはできません。 Note:VC++2005のコンパイラはstaticコンストラクタをpublicにすることも、明示的に呼び出すこともできます。しかし、明示的に呼び出しても実際には呼び出されないようです。 * staticコンストラクタはパラメータ(引数)を持てません。 Note:static initonlyなメンバーは、宣言と同時に初期化するか、staticコンストラクタで初期化しなければなりません。 * staticコンストラクタで例外が発生するとSystem::TypeInitializationExceptionがスローされます。しかし通常catchすることはできません。 * staticデストラクタは存在しません。 <code cpp> using namespace System; ref class A { public: static int a_; static A() { a_ += 10; } }; ref class B { public: static int b_; static B() { // a_ += 10; // error b_ += 10; } }; ref class C { public: static int c_ = 100; static C() { c_ = 10; } }; ref class D { public: static D() { Console::WriteLine(L"D is called"); } }; int main() { Console::WriteLine(A::a_); A::A(); Console::WriteLine(A::a_); Console::WriteLine(B::b_); Console::WriteLine(C::c_); System::Type^ t = D::typeid; Console::WriteLine(t->ToString()); return 0; } </code>
/var/www/html/virtual/cppcli/data/pages/cli/staticコンストラクタ.txt
· 最終更新: 2013/12/23 09:08 (外部編集)
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ