私はクラスcnListを持っており、柔軟な数のアイテムを格納しています。このリストは、後でcnArrayオブジェクトに変換する必要があります。リストクラスは既にメソッドcnArray cnList::toArray() const
を実装しています。データをコピーせずにローカルオブジェクトをポインタに変換しますか?
ご覧のとおり、参照やポインタではなくオブジェクトを返します。しかし、リストを配列に変換した後に行う必要があるのは、後でクラスメンバーで使用するためにこの配列を格納することです。つまり、そのポインタを持つ必要があります。cnArrayオブジェクトです。
実際の問題は、単純に配列アドレスを使用しているということです。現在の方法の後に解放されるため、アドレスはオプションではありません。
このオブジェクトを何らかの形で「ポインタ」に変換してオブジェクトを解放することはできますか?
もちろん、object-arrayのすべてのエントリをpointed-arrayにコピーすることはできますが、それはあまり効率的ではないので、私が望むものではありません。
私はcnArrayオブジェクトへのポインタを返しますが、私はこの周りがあれば知りたいcnListでメソッドを実装することができたという事実を認識しています。
cnListが参照カウントを実行しているかどうかを確認しましたか? – Jimmy
cnArrayでmoveセマンティクスを実装しましたか?なぜ価値によって戻るのではないでしょうか? –
@ジミーなぜそれはすべきですか?これはトピックとは何が関係していますか? –