(+84) 236.3827111 ex. 402

Hàm hủy bỏ của lớp dẫn xuất


1. Hàm hủy bỏ của lớp dẫn xuất

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

2. 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

}

3. 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;

}