プロが教えるわが家の防犯対策術!

MFCのCArrayを使って以下のことをしようとすると
エラーになります。

コード:
CArray <CStringArray, INT_PTR> array;
CStringArray str;
array.Add(str.Add("aaa"));

エラー内容:
C2582: 'operator '=' 関数を 'CStringArray' で使用できません。


CArrayの要素としてCStringArrayを使うことは
出来ないのでしょうか?

A 回答 (2件)

結論は、出来ません。



CArrayを用いるには
operator=(..) が定義されていないと、使えませんが、
CStringArrayの定義(AFXCOL.H)に 定義が無いので無理です。
(AFXCOL.H書き換えれば、一応できるけど(==; やらないように、 )

変わりに、CObArray使ってくださいな(=w=ノ


(入れてね)
#include <Afxcoll.h>


(使い方)
CObArray array;
CStringArray str;
array.Add(&str); //扱いがポインタになるので注意


後、
CStringArray::Add()は
追加した要素のインデックスです。

array.Add(str.Add("aaa"));

こんな記述はできませんよ。
    • good
    • 0

下の文の一部修正 (==;



CStringArray::Add()の戻り値は、
追加した要素のインデックスです。

array.Add(str.Add("aaa"));

こんな記述はできませんよ。
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A