Đối với loại POD hoặc một lớp có số tầm thường destructor: no. Tuổi thọ của đối tượng sẽ kết thúc khi bộ nhớ cho đối tượng được giải phóng hoặc sử dụng lại. Bạn không cần phải gọi destructor một cách rõ ràng nếu bạn không muốn.
Điều đó nói rằng, không có lý do gì để không. Đối với một kiểu với một destructor tầm thường thì cuộc gọi destructor sẽ không tạo ra mã nào. Nếu có, bởi một lớp có một destructor "rỗng", bạn cho phép khả năng lớp có các thành viên hoặc các lớp cơ sở với các destructors không tầm thường thì bạn có thể nhận được hành vi không xác định nếu chương trình của bạn dựa vào các destructors được gọi.
Lưu ý rằng người dùng cung cấp destructor là một destruct không tầm thường ngay cả khi nó không phải là ảo và trống. Mặc dù vậy, bạn vẫn được phép kết thúc vòng đời của một đối tượng với một destructor như vậy bằng cách giải phóng hoặc sử dụng lại bộ nhớ của nó miễn là chương trình của bạn không phụ thuộc vào bất kỳ tác dụng phụ nào của destructor. (Xem 3.8 [basic.life]/4 của ISO/IEC 14882: 2011)
Nguồn
2012-05-11 06:57:29
@EdChum Tại sao? Anh ta đặt một vật thể lên trên bộ đệm đó. – Benj
@Benj xin lỗi chỉ nhận ra sai lầm của tôi – EdChum
Với vị trí mới, bạn có chịu trách nhiệm gọi điện cho destructor của bất kỳ loại phụ nào không? – Benj