この問題はすでに尋ねられていますが、この権利をどのように言いたいのか分かりません。 私は、Arduino Uno(2kbyte sram)以降、実際にメモリ効率が必要なアプリケーションを構築しています。必要なクラスオブジェクトの完全な配列を読み込むことができないので、部分的にロードすることにしました。 これは私がそれを行うことを計画する方法は基本的です:私は他の値に[0]オブジェクトを変更するときC++クラス配列のメモリ割り当ての再割り当て
//declare class object array
MyClass objects[10];
objects[0] = MyClass(*parameters for initializing*);
....
....
//Some code with objects
//now changing the objects
objects[0] = MyClass(*parameters for initializing*);
今、私の質問は、最初のオブジェクトは、[0]メモリが解放されますか? 私が知る限り、オブジェクトは基本的にはクラスのフィールドへのポインタであり、コンストラクタを呼び出すとオブジェクトへの新しいポインタを取得するので、コード内で何をしているのかはオブジェクト[0]が指しているものを変更することです私はオブジェクト[0]メモリの値が最初に指摘されているかどうかは分かりませんが、メモリは解放されます。
「オブジェクトが基本的にクラスのフィールドへのポインタであることを理解する限り、間違ったことを理解しています。オブジェクトは多くの点でCの構造体と同じです。 –