acapiから動的配列へのポインターを受け取るコンテナークラスがあります。このクラスはバッファの所有者になり、delete[]を使用して削除する必要があります。
したがって、このバッファは次のように作成された可能性があります。
Value * ptr = malloc(10 * sizeof(Value));
また、単一の値を操作するValueWrapperというクラスもあります。
私のコンテナには、ValueWrapperオブジェクトを返すゲッターがあります。
ValueWrapper Container::valueWrapper(int index)
{
return ValueWrapper(_value[index]);
}
ただし、コンテナが破棄されると、タイプVWrapperのオブジェクトの値*は無効になります。
この問題にどのように対処できますか?何らかの方法でValue*の所有権を共有する必要があります。ValueWrapperオブジェクトは、コンテナーがスコープ内にある場合にのみ使用できると主張し、これをContainer :: valueWrapper(int index)のコメントに書き込むのは合理的でしょうか?