オブジェクトをベクターに渡し、同時に作成することはできますか? 例を挙げて、私が何を意味するかを説明しようとします。
#include <vector>
class testObject{
private:
int someInt;
public:
testObject(int a){ someInt=a; }
};
int main() {
std::vector<testObject> testVector;
testVector.push_back(testObject(2));
}
上記のコードに似たものを使用してみました。当然のことながら、実際にベクターに追加されたオブジェクトはありません。私が理解している限りtestObject(2)
、のインスタンスを作成しますがtestObject
、コンストラクターが終了した瞬間に範囲外になります。
アップデート:
親愛なるヘルパー/アドバイザー。回答ありがとうございます。すべてのコメントとコード例を読み、質問を少し変更する必要があります。クラスにメンバーを追加しましたtestObject
。オブジェクトのインスタンスをベクターに追加すると (上記の例に示すように)、メンバーは空に見えます。今、私はそれを行うためにメモリを割り当てる必要があると思いますか? new
通常、私はメモリ リークを恐れており、自分のプログラミング スキルにまだ自信がないため、メモリの割り当てを避けようとします。最も賢明な実装は何でしょうか?