如何使析构函数超载?

Jos*_*hua 13 c++

如何重载析构函数?

Jar*_*Par 34

你不能.在C++中,每个类只有一个析构函数.

你可以做的是创建一个私有的析构函数,然后有几个公共方法以新的和有趣的方式调用析构函数.

class Foo {
  ~Foo() { ... }
public:
  DestroyFoo(int) { ... };
  DestroyFoo(std::string) { ... }
};
Run Code Online (Sandbox Code Playgroud)


Dim*_*ima 5

重载意味着有几个具有相同名称的函数,它们采用不同的参数。喜欢swap(int &a, int &b)swap(double &a, double &b)。析构函数不接受任何参数。重载它没有意义。

如果您需要根据某些情况在销毁对象时做不同的事情,那么您只需要在析构函数中使用适当的 if 语句来检查这些情况。