プロが教える店舗&オフィスのセキュリティ対策術

教えてくださいませ。

Visual C++ .NETで独自コレクションって作成できるのでしょうか?VBやC#では出来るのですが、C++.netってforeach文が無いので、作成できない(作成しても意味がない)のかなと思いました。

[言語]
Visual C++ .NET フレームワーク

A 回答 (5件)

どんなモノを作ろうとしているのわからないので、見当違いかもしれませんが、作れると思います。


foreach は、
C++では、for とかでイテレータを使うのが常道と思います。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2005/10/27 09:53

>独自コレクション


出来ると思います。どんなの作るか知りませんが、CObjectあたりを継承して作るとやり易いと思います、

一応、VCでもMFCにコレクションが用意されています。
CArray,CMapとか色々あります。

で、C++自体にもテンプレートとして、MapとかVectorとかあります。
ただ、VC++で使う場合、オプションの設定しないとエラー出ます。

>>foreach文
これはVCには無いです。ていうか、、、いらない(=w=;
    • good
    • 0
この回答へのお礼

ありがとうございました。
MFCのCArrayは使わずに、.netのArrayListを使っているので。
言葉足らずで申し訳ありませんでした。

お礼日時:2005/10/27 09:55

C++では、foreach文はありませんが、std::for_each関数ならあります。


もっとも、使い方がC#のforeachとはかなり異なりますし、.NETのコンテナを使うためには、ForwardIteratorの要件を満たすようにアダプタを作る必要がありそうです。(あるいはSTL.netを待つか)

C++には、元々強力なコレクションが備わっています。
vector, deque, list, map, set, bitset, valarrayなどです。それで足りなければ、Boost C++ Librariesなど、適切な外部ライブラリを使うことも出来ます。
独自にコレクション(というかコンテナ)を作ることももちろんできます。

なお、vectorなどのコンテナクラスは、そのままではマネージドクラスのポインタを直接扱うことはできませんが、テンプレート引数のアロケータを適切に定義すれば、それなりに動くものができるかもしれません。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2005/10/27 09:56

「Visual C++ .NET フレームワーク」って限定しているのだから、


MFCのコレクション使うのが普通ですよ。
VC++では一般的に、C++デフォのvector, deque, list, map等は、滅多に使いませんよ。
    • good
    • 0
この回答へのお礼

ありがとうございました。
>MFCのコレクション使うのが普通ですよ。
そーなのですか?.netだとフレームワーク(.net)を使うものだと思っていました。(^^; 何のためにマイクロソフトは作ったのでしょうね。金儲けのためか。Cユーザはいろいろ言語があって大変ですね。

お礼日時:2005/10/27 10:03

ちなみに下記URLには、.NET Frameworkでのカスタムコレクションの作り方が書かれていますが、静的な型安全性もなければ、例外安全性が保障されているかどうかもわからない、10年以上前のコンテナを髣髴させる代物ができてしまうこと間違いなしです。



参考URL:http://support.microsoft.com/default.aspx?scid=k …
    • good
    • 0
この回答へのお礼

ありがとうございました。
こんな感じのを作成したかったのです。
文面が分かりにくく皆様にはご迷惑をおかけしました。m(--)m

ただ、
>例外安全性が保障されているかどうかもわからない
そーなのですか?私はもう少しオブジェクト指向のロジックの組み方を勉強した方が良いみたいですね。
クラス単位で作成し、クラス単位でデータを保持して、クラス単位で完結して、使用するときにメインクラスで使用しようと思っていたのですが... 

お礼日時:2005/10/27 10:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!