(+84) 236.3827111 ex. 402

Hàm hủy bỏ trong kế thừa


Hàm hủy bỏ trong kế thừa

Khi đối tượng lớp dẫn xuất được giải phóng, thứ tự gọi là:

- Hàm hủy bỏ lớp dẫn xuất gọi trước

- Hàm hủy bỏ lớp cơ sở gọi sau

Cú pháp:

::~([các tham số]){

…//giải phóng phần bộ nhớ cấp phát cho các thuộc tính bổ sung

}

Ví dụ:

Cài đặt lớp Bus kế thừa từ lớp Car. Lớp Car có 1 thuộc tính dạng con trỏ nên cần giải phóng bằng hàm hủy bỏ tường minh.

Lớp Bus có thêm 1 thuộc tính dạng con trỏ là danh sách các đường phố mà xe buýt đã đi qua nên cũng cần giải phóng bằng hàm hủy bỏ tường minh.

//Định nghĩa lớp Car

class Car{

private:

char *mark; //nhãn hiệu xe

public:

~Car(); //Hủy bỏ tường minh

};

Car::~Car(){

delete []mark;

}

//Định nghĩa lớp Bus

class Bus:public Car{

private:

char *v[]; //Hành trình chuyến xe

public:

~Bus(); //Hủy bỏ tường minh

};

Bus::~Bus(){

delete []v;

}