C++/CLI講座

以下は覚書程度です。C++/CLIへの本格移行をはじめましたので、今後コンテンツを増やす予定です。

注意:

2005版出現以降、Visual C++の世界ではC++は次の種類に分けられるということを認識しておきましょう

    • UnManaged C++ (ネイティブC++、Win32、MFC、ATLを含む)
    • Managed C++ (“.NETアプリケーション”。2003版まで)
    • C++/CLI (“.NETアプリケーション”。Managed C++ の改良版。2005版で登場)

そしてここでは、CLIを中心に記述していきます。

配列の宣言

arrayクラスを使用します。

名前空間(Namespace)について

オブジェクト指向設計では、クラスがプログラムの基本となります。大規模なシステム開発を想定した場合、同一の名前のクラスを作成してしまうよう な状況もありえます。この問題を解決するために、名前空間という概念があります(JavaではPackageというキーワードを使います)。例えば、 GikoさんとNekoさんがmanという同一の名前のクラス(機能は違う)を実装した場合、「Gikoさんが作ったmanクラス」「Nekoさんが作っ たmanクラス」というように区別することができます。

//Gikoさんのmanクラス
namespace Giko{
  ref class man{
  };
}
//Gikoさんのmanクラス
namespace Neko{
  ref class man{
  };
}

クラスの宣言方法

ref class man{
 public:
   publicなメンバ変数・関数を書く
 private:
privateなメンバ変数・関数を書く
};

C#とC++/CLIの対応

C#の登場によって、C++/CLIの立場は微妙になっています。現実として、ネットで資料を探せばほとんどがC#のサンプルです。が、C++/CLIにはそれなりの利点があります。では、情報量の少ないC++/CLIのノウハウをどのように探すか、、、実は、.NETフレームワークでは、ライブラリは共通化されています。つまり、クラスやメソッドの名前等はほとんど同じです。そこで、C#のサンプルが見つかれば、C++/CLIについても見つかったと考えていいです。ただし、書き方が微妙に違いますのでその辺は注意してください。