C++/CLI(配列)2008/10/01 06:11

最近は、ブログもご無沙汰になってます。雲は、何だか、今ひとつ気持ちが乗らなくて、無為に日々を過ごしていることが多かったです。ということで、気持ちを切り替えて、C++/CLI のお勉強記録でも書いていこうかと思います。

まずは、配列の初期化リストから。

C++/CLI では、配列は全てヒープに取られますが、初期値の指定は できてしまいます。C++ の vector では出来ないのが残念です。

初期値を設定する場合。 array<int> ^v = { 0, 1, 2, 3 }

初期値を設定しない場合。 array<int> ^v = {}

何だか、初期値を設定しない場合はこんなんでいいのが不思議です。

本来なら、初期値を設定しないときには、 array<int> ^v = gcnew array<int>();

と書かないといけないのでしょうね。

C++/CLI(継承)2008/10/01 06:26

C++/CLI では、継承するときに、public 継承しかありません。 すなわち、

ref class A{

};

ref class B : public A{

};

しか認められないということです。なので、public を書く必要も無いよね。ということで、

ref class B : A{

};

でも良いということです。ふ~ん。

Windows Search 4.02008/10/02 05:43

お勉強のために早起きをしたはずなのに、意味もなく、違うことを考えてました。で、折角なので、忘れないように何を考えていたのかメモを残しておきます。

雲は、いろいろと、情報を貯めるのが好きでPDFから参考となりそうなソースコードまでいろいろとGB単位でため込んでいます。

で、貯めたのは良いのですが、効果的に活用しているかと聞かれると、さぁ?となってしまっています。

これは、何も今に始まったことではなくて昔から変わらず続いている雲の特徴の一つだったりします。

ということで、この特徴はたぶん一生直らないと思うので何とかその欠点を補う工夫はないものかと日々悩んでました。

で、ふと気がつくと Windows Serch というものがあるではないですか。なるほど。ファイラーにこの機能を組み込んでもらえると、必要なファイルがサクッと見つかりそうな気がしてきました。

特に、Vista で実装された仮想フォルダを使うと良さそうですね。

ということで、少し、自分の頭の悪さを補ってくれそうな技術を見つけて 喜んでいる雲でした。

ちなみに、C# などからも使えるようです。

http://d.hatena.ne.jp/oui27/20080714/1216049712

コードスニペット2008/10/04 05:55

雲は、C#とC++をやっていていつも気になっていたことに、コードスニペットがありました。C++ 大好きな雲としては、C++ でもコードスニペットを使いたかったのです。しかし、とうとう?C++ でコードスニペットを行う方法を見つけましたので、ご紹介します。

http://mahral.com/VS/PowerToy.htm

ここを見るとダウンロードの仕方から設定のやり方までちゃんと記述してあります。

C++ でどうしても?コードスニペットを使いたい方は試してみてはいかがでしょうか?

C++/CLI のデストラクタ2008/10/09 06:27

C++/CLI のデストラクタは、IDispose に変換されます。IDispose を実装 したクラスのことを(C#, C++/CLI に関わらず)リソースと呼びます。 リソースとは、ファイルポインタなど有限な資源を持った(明示的な解放処理が必要な)クラスのことです。

C++/CLI としては、デストラクタ(IDispose)で終了処理を行うのではなく、デストラクタからファイナライズを呼び出して終了処理を行うように 実装しておくことで、クラスの終了処理を一意に決めることが出来ます。

そうしておかないと、デストラクタ(Dispose)は、常に、呼ばれるとは限らないため、正しく終了処理がされることを保証できないのです。