Ai có thể giải thích cách giải phóng bộ nhớ của một biến thành viên tĩnh? Theo sự hiểu biết của tôi, nó chỉ có thể được giải phóng nếu tất cả các trường hợp của lớp bị phá hủy. Tôi là một chút bất lực vào thời điểm này ...Làm thế nào để giải phóng biến thành viên tĩnh trong C++?
Một số luật để giải thích nó:
class ball
{
private:
static SDL_Surface *ball_image;
};
//FIXME: how to free static Variable?
SDL_Surface* ball::ball_image = SDL_LoadBMP("ball.bmp");
Đã xóa câu trả lời của tôi, câu trả lời tương tự với câu trả lời của bạn nhưng không hoàn toàn giống với câu trả lời của bạn. – Nate
Ý tưởng của tôi là làm như bạn mô tả trong 2. nhưng tôi nghĩ rằng có thể là một cách tốt hơn. Con trỏ thông minh là gì? Chưa từng nghe điều đó trước đây. Âm thanh như bộ sưu tập rác .. – user299831
Con trỏ thông minh là đối tượng chứa con trỏ, cho phép bạn sử dụng nó như thể nó là con trỏ và giải phóng bộ nhớ đó cho con trỏ khi nó bị phá hủy (thường được thực hiện bằng cách đếm tham chiếu để xem liệu có là bất kỳ tham chiếu nào còn lại cho con trỏ). Nó tương tự như thu gom rác ở chỗ nó quản lý bộ nhớ cho bạn, nhưng đó là một khái niệm riêng biệt. Tôi đã thêm một liên kết để triển khai tăng cường. Có rất nhiều thông tin trực tuyến trên chúng - bao gồm cả tại wikipedia. Ngoài ra, nếu bạn chỉ cần tìm kiếm con trỏ thông minh tại đây tại SO, bạn sẽ nhận được một số câu hỏi liên quan đến chúng. –