Tại sao bạn nên khai báo một hàm hủy là ảo (virtual) ?

{{FormatNumbertoThousand(model.total_like)}} lượt thích
2.608 lượt xem
C/C++ basic

Giả sử có class Parent và class Child kế thừa từ Parent.

Ta định nghĩa con trỏ: Parent * p = new Child();

Lúc này để tạo ra Child(), thì Parent() phải được tạo ra trước. Khi chúng ta delete p, thì cả 2 đối tượng này cũng phải được gọi Destructor. Vậy nếu không khai báo virtual cho hàm Destructor của Parent, thì chỉ Destructor của Parent được gọi, đối tượng Child() vẫn còn đó

{{login.error}}