做這件事的原因是我想在使用這個類時強制所有對象成爲智能指針。因此,我可以保存一些代碼,如class Vector2 final:shared_ptr <Vector2>是否正確(更新!)
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 *。因爲我想標準化爲一種類型