class Test{public: Test() { m_data = new Data; } ~Test() { delete mData; }private: Data* m_data = 0;}
class Test{public: Test(); ~Test() = defaultprivate: std::unique_ptr<Data> m_data; or QScopedPointer<Data> m_data;}
std::unique_ptr<Data> m_data; or QScopedPointer<Data> m_data;
class Test{public: Test(); ~Test() = defaultprivate: Attribute< Data > m_attribute; // данные, не участвующие в ассоциативных связях Unique<Data> m_unique; // полюс ассоциативной связи копозитной агрегации (участник ассоциативных связей) Shared<Data> m_shared; // полюс ассоциативной связи обобщенной агрегации (участник ассоциативных связей) Assocc<Data> m_assocc; // полюс ассоциативной связи, не являющейся агрегацией (участник ассоциативных связей)}
class Whole{ std::vector<Part> parts0; std::vector<std::unique_ptr<Part>> parts1; std::deque<std::unique_ptr<Part>> parts2; std::map<PartId, std::unique_ptr<Part>> parts5; std::unordered_map<PartId, std::unique_ptr<Part>> parts6; // ...};