その理由は、このクラスを使用するときにすべてのオブジェクトをスマート ポインターにすることを強制したいからです。したがって、次のようないくつかのコードを保存できます
class Vector2 final : shared_ptr<Vector2>
{
...
inline shared_ptr<Vector2> getVector2(); //--> inline Vector2 getVector2();
...
inline static float dot(const shared_ptr<Vector2> a, const shared_ptr<Vector2> b); //--> inline static float dot(const Vector2 a, Vector2 b);
}
それが正しいか?はいの場合、それはベストプラクティスですか? いいえの場合、最高のものは何ですか?
================================================== ================================
多分私は別の例を使用します
class Sprite
{
private:
Vector2* pPosition;
shared_ptr<Vector2> position;
Image* pBackground;
shared_ptr<Image> background;
};
参照カウントが必要な理由を説明しましょう。位置または背景を更新するときは、新しい値を割り当てる前に削除操作を処理する必要があります。
これはどう
inline static shared_ptr<Vector2> add(const Vector2* a, const Vector2* b)
これは、関数を終了する前に使用される場合と使用されない場合がある結果を返します。その後、使用しない場合は手動で削除する必要があります。
コードの節約手段 1. オブジェクトを手動で削除する必要はありません 2. それが shared_ptr か Vector2* かを気にする必要はありません。ひとつの型に統一したいから