我想知道将析构函数置于常量是否有用? 例如:
class example { public : example(int params); const ~example(); //Here }
答案 0 :(得分:2)
从概念的角度来看,这没有任何意义。 const
函数没有副作用。因此,他们需要返回一些东西。由于析构函数不返回任何内容,因此该函数将无用。
(顺便说一下,类似于const void功能)
如评论中所述,您仍然可以修改mutable
中的const
数据。
答案 1 :(得分:1)
它无用,因为它不可能:
错误:析构函数声明中不允许使用限定符
答案 2 :(得分:0)
它没用,并且通常会触发编译器的警告 - 通常是忽略限定符的效果。
函数返回时的const
限定符主要仅对返回指针或引用的函数有用(例如,表示返回的引用是指不应在逻辑上更改的对象)。析构函数不会返回任何内容,因此const
无法获得限定。
编译器将拒绝使析构函数本身const
(即~example() const
)。这是合适的,因为析构函数通常会更改对象的状态(使其不再逻辑存在)