析构函数是否可以超载?

pic*_*c11 13 c++ syntax destructor overloading

enable_if doc页面说:

构造函数和析构函数没有返回类型; 额外的参数是唯一的选择.

析构函数是否可以超载?

Pra*_*rav 18

没有


      

  • **他们不应该** (6认同)

iam*_*ind 7

析构函数是否可以超载?

答案是普通.
两个版本的desturctor不能在一个class体内共存.

然而,与流行的信念不同,请注意析构函数确实有2种语法.

struct E {
  ~E();  // syntax-1
  ~E() throw(); // syntax-2
};
Run Code Online (Sandbox Code Playgroud)

语法-2不太受欢迎.但如果基类析构函数包含类似的语法,则必须使用它.最好的例子是继承std::exception.

请注意,不遵守此类语法会导致:

错误:'virtual E :: ~E()'的错误抛出说明符