私はオブジェクトへのポインタのリストを持っています。私がしたいことは、リストを読んで、各オブジェクトをそのオブジェクトタイプの動的配列に格納することです。だから私はこれを行う:代入演算子、動的配列を使用
int size = List.size(); // find how many objects in the list
ClassA* object = new ClassA[size]; // create a dynamic array
int counter = 0;
p = List.begin(); // iterator = begining of the list
while(p != List.end())
{
object[counter] = (*p)->operator=(*(*p));
// called like this as this function is in a separate class
p++;
counter++;
}
これは私が代入演算子を必要とするが、私はそれに入れすべきことの少し混乱していますし、私は、スタックオーバーフローエラーを取得しています意味したいもののように見える、ここに何があります私は私が行うために必要と思わ:
ClassA ClassA::operator =(const ClassA& source)
{
ClassA* newObject;
newObject = new ClassA;
newObject = source;
return newObject;
}
これは私がないことが、私の頭の中で、これは私はそれが何をしたいですが、私は完全に私はそれを実装する方法を理解していないBSの負荷です。
誰かが私が必要とするものを達成するためのよりよい方法を助けたり、提案したりすることができれば幸いです。
この理由は、このリストに格納されているオブジェクトは通常、各フレームを通して反復され、一時オブジェクトにコピーされるからです。しかし、プログラムの実行中にリストは変更されません。つまり、最初に1回だけ各フレームをコピーする必要はありません。また、リストに格納されるオブジェクトの数がわからないため、動的配列が必要です。
あなたのリストにはポインタや実際のオブジェクトが含まれていますか? (つまり、リストまたはリスト)? –
申し訳ありませんが、私はインスタンスの各変数をコピーしなければならないことを意味する – RobBain85