Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

การทำลายเสมือนโดยใช้ shared_ptr ใน C ++


ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมเพื่อทำความเข้าใจการทำลายเสมือนโดยใช้ shared_ptr ใน C++

ในการลบอินสแตนซ์ของคลาส เรากำหนดให้ destructor ของคลาสพื้นฐานเป็นแบบเสมือน ดังนั้นมันจึงลบอินสแตนซ์ของอ็อบเจ็กต์ต่างๆ ที่สืบทอดมาในลำดับย้อนกลับที่สร้างขึ้น

ตัวอย่าง

#include <iostream>
#include <memory>
using namespace std;
class Base {
   public:
   Base(){
      cout << "Constructing Base" << endl;
   }
   ~Base(){
      cout << "Destructing Base" << endl;
   }
};
class Derived : public Base {
   public:
   Derived(){
      cout << "Constructing Derived" << endl;
   }
   ~Derived(){
      cout << "Destructing Derived" << endl;
   }
};
int main(){
   std::shared_ptr<Base> sp{ new Derived };
   return 0;
}

ผลลัพธ์

Constructing Base
Constructing Derived
Destructing Derived
Destructing Base