Để ngăn chặn một đối tượng được phân bổ trên ngăn xếp xác định một destructor riêng. Điều này dẫn đến một lỗi biên dịch cho một đối tượng dựa trên stack, vì nó cấm cuộc gọi destructor ngầm khi một đối tượng dựa trên stack vượt quá phạm vi. Bạn sẽ cần triển khai phương thức hủy công khai, một thứ gì đó dọc theo các dòng:
void MyObject::destroy() const
{
delete this;
}
để làm sạch đối tượng được phân bổ trên heap. Hãy chắc chắn để đọc C++ FAQ cho một số cảnh báo.
Tương tự, để ngăn không cho một đối tượng được cấp phát trên heap, hãy đảm bảo xác định riêng toán tử new
.
Nguồn
2010-03-03 18:18:57
xem http://stackoverflow.com/questions/1820069/public-operator-new-private-operator-delete-getting-c2248-can-not-access-priva –