Я новичок в интеллектуальных указателях, мне понравилось использовать их для безопасности и возможности совместного использования объекта ...
У меня один вопрос: если мой класс управляет ресурсом в своих конструкторах и деструкторах, применяя некоторые правилабольшой палец, как Большой 5 и Большой 3 ... Должен ли я по-прежнему использовать умные указатели? или мой класс является альтернативой им. Потому что, как я читал в выпуске C ++ primer 5, умные указатели решали проблемы, с которыми сталкивались необработанные указатели, такие как утечки памяти, двойное удаление указателей и доступ к висящему указателю ... Мой класс может избежать этих проблем:
class BallGame {
public:
using Resource = int;
BallGame(int);
BallGame(const BallGame&);
BallGame(BallGame&&);
BallGame& operator=(const BallGame&);
BallGame& operator=(BallGame&&);
~BallGame();
private:
Resource m_res;
};
Считаете, что ученик моего класса делает правильную работу, поэтому я могу избежать умного указателя?
Я хочу знать некоторые сценарии, когда яЯ должен использовать умные указатели, а не управлять ресурсами в моем классе.
Они действительно для "тупых классов" (классов, которые определяют конструкторы, но не деструкторы с хорошим поведением), как в учебнике по С ++.