LẬP TRÌNH C/C++ NÂNG CAO Yêu cầu trước khi đọc học xong Lập trình C/C++ căn bản BÀI 14 DESTRUCTOR, CONSTRUCTOR, CONVERSION VÀ DEBUG Hàm hủy ảo (virtual destructor) Trong ví dụ sau, hàm hủy của Derived[.]
LẬP TRÌNH C/C++ NÂNG CAO Yêu cầu trước đọc: học xong Lập trình C/C++ BÀI 14: DESTRUCTOR, CONSTRUCTOR, CONVERSION VÀ DEBUG Hàm hủy ảo (virtual destructor) Trong ví dụ sau, hàm hủy Derived khơng gọi CODE class Base{ public:Base(){};~Base(){};}; class Derived:public Base{ public:Derived(){};~Derived(){};}; int main(){ Base* b = new Derived();delete b; } Trong trường hợp này, ta cần khai báo hàm hủy Base hàm hủy ảo (tuyệt đối không pure virtual destructor) CODE class Base{ public:Base(){};virtual ~Base(){};}; Hàm khởi tạo chuyển kiểu (conversion constructor) Bất kì constructor đối số trở thành conversion constructor CODE class Thing{ int num; public: Thing(int num){(*this).num=num;} friend ostream& operator