私は興味深い問題に遭遇しました。クラスで満たされたベクトルを返すC++の関数があります。ベクトルが返されると、ベクトルの要素である各クラスのデコンストラクターが呼び出されます。
問題は明らかです。クラスがポインタを指す場所でデータが破棄され、オブジェクトが破棄されるとポインタが解放されます。ベクトルがヒープ上ではなくスタック上にあるため、デコンストラクターが呼び出されると想定することしかできません。
したがって、問題は次のとおりです。
関数からベクトルを破棄せずに返し続ける方法はありますか?または、関数への入力としてベクトルを返すためにポインターを渡す必要がありますか?