析构函数参数

Tho*_*ews 31 c++ parameters destructor

文章析构函数是否可以超载?谈论重载析构函数.

这提出了一个问题:析构函数可以有参数吗?

我从未使用或看过带参数的析构函数.我无法想出一个将参数用于析构函数的原因示例.

Mat*_*Mat 41

C++ 0x草案n3290的第12.4节有关于析构函数的说法:

析构函数

使用可选函数指定程序(7.1.2)后跟〜后跟析构函数的类名后跟空参数列表的特殊声明符语法用于在类定义中声明析构函数.

(重点补充)

所以不,析构函数不带参数.(2003年标准具有上段的确切措辞.)

  • 我经常想将“环境”参数传递给析构函数,但我不能,并且必须向这些类的每个实例添加一个“环境”指针成员,这是严重的内存浪费。 (3认同)
  • 分配和释放函数不遵循构造函数和析构函数的模式:分配函数可以有额外的参数(放置形式),如果是,那么必须有相应的释放函数和相同的额外参数.只有在施工失败时才会调用它.没有办法通过`delete`来调用它.我一直想知道这个机制的重点是什么. (2认同)

Pup*_*ppy 8

不,这是一个简单的答案.这会使自动资源管理成为一个重要的婊子,因为你不得不担心析构函数采取了什么参数以及你将从何处获取它们.在例外的情况下 - 编译器如何知道通过析构函数的内容?