일을하는 이유는이 클래스를 사용할 때 스마트 포인터로 모든 개체를 강제 할 것입니다. 따라서 일부 코드를 저장할 수 있습니다클래스 Vector2 최종 : 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 *인지주의해야합니다. 하나의 유형으로 표준화하고 싶기 때문에