Я новичок в С++, и у меня возникают проблемы, обворачивающие мою голову вокруг собственности, в частности, с геттером. Вот пример кода:
class GameObject {
public:
Transform *transform();
private:
Transform _transform;
};
Я предполагаю, что необработанный указатель небезопасен, поскольку кто-то может получить к нему доступ позже, когда объект больше не существует?
-
Поэтому я подумал об использовании unique_ptr для элемента transform, поскольку GameObject является единственным, которому принадлежит преобразование. Но я не могу вернуть это от геттера, не так ли? Но опять же, почему бы мне когда-либо использовать unique_ptr, вместо того, чтобы добавлять его как член, как указано выше?
-
Так почему бы не использовать shared_ptr? Мне просто кажется неправильным, я не хочу делиться собственностью, GameObject - это владелец, а другие могут получить к нему доступ...
-
Итак, что это? Ссылка? Я думаю, что shared_ptr кажется самым мудрым выбором, поскольку другие могут спокойно хранить ссылку на преобразование, но что хорошего в том, что если прилагаемый GameObject был уничтожен, превращение преобразования бесполезно? Вероятно, я просто думаю о том, что здесь неправильный путь, но для меня все кажется неправильным. Спасибо за вашу помощь.