0
は誰も私を説明することができ、私のクラスでは動作しません。ただし、これはできません:ベクトルは、私が間違って何をやっている
mdata.push_back(*Mbuff); //this doesn't work... I can't print data from mdata
どうしてですか?
は誰も私を説明することができ、私のクラスでは動作しません。ただし、これはできません:ベクトルは、私が間違って何をやっている
mdata.push_back(*Mbuff); //this doesn't work... I can't print data from mdata
どうしてですか?
MClass2
から実際MClass
継承、あなたがMClass : public MClass2 {}
を書き込むことによって示唆するように見えるように、あなたはMClass
オブジェクトとしてMClass2
オブジェクトを扱うことはできませんが、他の方法で回避する場合。
(あなたはClass Dog : public Animal
を持っている場合は同様に、あなたは動物としての犬を扱うことができますが、犬などの動物を扱うことができません。)
ので、*Mbuff
がMClass2
オブジェクトであるため、あなたがそれを置くことはできませんMClass
オブジェクトのベクトルです。
しかし、あなたは「これはうまくいかない」ということをより具体的に説明する必要があります。
[so]へようこそ!これはどんな言語ですか?私はC++タグを追加するつもりですが、私はちょうど推測しています。 – jpaugh
作成しましたか?** MClassのためのコンストラクター**をコピーしましたか?データが 'vector'によって作成されている' MClass'の内部インスタンスにコピーされていないと思います。 boost :: ptr_vector mDataのようなboostの 'ptr_vector'を使う方が良いかもしれません。コピーコンストラクタとクリーンアップについて心配する必要はありません。 'mData.push_back(new MClass2);' –
Sam
Lookupの "object slicing"のようにデータを追加することができます。 –