Computer >> Máy Tính >  >> Lập trình >> C ++

Virtual Destructor trong C ++

Xóa một đối tượng lớp dẫn xuất bằng cách sử dụng một con trỏ đến một lớp cơ sở, lớp cơ sở phải được định nghĩa bằng một hàm hủy ảo.

Mã mẫu

#include<iostream>
using namespace std;
class b {
   public:
      b() {
         cout<<"Constructing base \n";
      }
      virtual ~b() {
         cout<<"Destructing base \n";
      }
};
class d: public b {
   public:
      d() {
         cout<<"Constructing derived \n";
      }
      ~d() {
         cout<<"Destructing derived \n";
      }
};
int main(void) {
   d *derived = new d();
   b *bptr = derived;
   delete bptr;
   return 0;
}

Đầu ra

Constructing base
Constructing derived
Destructing derived
Destructing base