Tôi đang viết một lớp mẫu lấy làm đầu vào một con trỏ và lưu trữ nó. Con trỏ có nghĩa là trỏ đến một đối tượng được phân bổ bởi một lớp khác, và giao cho lớp có chứa này.Một destructor - tôi nên sử dụng xóa hoặc xóa []?
Bây giờ tôi muốn tạo trình phá hủy cho vùng chứa này. Làm thế nào tôi nên giải phóng bộ nhớ được trỏ tới bởi con trỏ này? Tôi không có cách nào để biết một ưu tiên cho dù đó là một mảng hay một phần tử đơn lẻ.
Tôi sắp xếp mới cho C++, vì vậy hãy chịu đựng với tôi. Tôi đã luôn luôn sử dụng C, và Java là ngôn ngữ OO của tôi lựa chọn, nhưng giữa muốn tìm hiểu C + + và yêu cầu tốc độ của dự án của tôi, tôi đã đi với C + +.
Bạn nên thay đổi vùng chứa từ mẫu thành vùng chứa cho lớp trừu tượng có thể triển khai trình phá hủy của riêng nó?
Câu trả lời của JonH là đúng, vì vậy có lẽ bạn nên cung cấp các mẫu: một cho mảng, một không. Câu trả lời khác là để tránh các mảng và thay vào đó mong đợi một cá thể đơn lẻ có thể hoặc không thể là một bộ sưu tập thích hợp dọn dẹp sau chính nó, chẳng hạn như vectơ <>. –
@Steven Sudit: Tôi nghĩ bạn nên đưa ra nhận xét đó một câu trả lời. –
Bạn cũng có thể có vấn đề về luồng với cách tiếp cận này - bạn không thể xóa nội dung nào đó được phân bổ trong một chuỗi khác. – ChrisF