使用 C++ 中的共享指针进行虚拟析构


在本教程中,我们将讨论一个程序,了解如何使用 C++ 中的共享指针进行虚拟析构。

为了删除类实例,我们定义虚基类的析构函数。因此,它将按创建的相反顺序删除继承的不同对象实例。

示例

 实时演示

#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

更新于:12-Mar-2020

145 次观看

开启你的职业生涯

完成课程以获得认证

开始学习
广告