使用常量析构函数是很有用的
It is useful to put a constant destructor?
我想知道在常量中放入析构函数是否有用?例如:
<>之前类的例子{公众:例子(int参数);const ~例子();//在这里}从概念的角度来看,这没有任何意义。const
函数没有副作用。因此,它们需要返回一些东西。由于析构函数不返回任何内容,因此该函数将是无用的。
(类似于const void函数)
如评论所述,您仍然可以在const
中修改mutable
数据。
这没有用,因为这是不可能的:
错误:析构函数声明不允许使用限定符
这是没有用的,并且通常会触发编译器的警告-通常是对修饰符被忽略的效果。
从函数返回的const
限定符主要只对返回指针或引用的函数有用(例如,指示返回的引用是一个逻辑上不应该更改的对象)。析构函数不返回任何东西,因此没有const
可以限定的东西。
使析构函数本身为const
(即~example() const
)将被编译器拒绝。这是合适的,因为析构函数通常会改变对象的状态(使其在逻辑上不再存在)
相关文章:
- 什么时候调用组成单元对象的析构函数
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 内联映射初始化的动态atexit析构函数崩溃
- 什么时候调用析构函数
- 优先顺序:智能指针和类析构函数
- C++-明确何时以及如何调用析构函数
- 使用基类指针创建对象时,缺少派生类析构函数
- 在c++中使用向量时,如何调用构造函数和析构函数
- 重载运算符new[]的行为取决于析构函数
- 我需要知道编译器如何在cpp中使用析构函数
- 为什么在使用转换构造函数赋值后调用C++类的析构函数?
- 析构函数调用
- 通过引用传递-为什么要调用这个析构函数
- 对具有动态分配的内存和析构函数的类对象的引用
- 重载 -> shared_ptr 个实例中的箭头运算符<interface>,接口中没有纯虚拟析构函数
- C++成员的析构函数顺序与shared_ptr
- C++ 防止在映射中放置()时调用析构函数
- 在这种情况下显式调用时,std::cout 如何更改析构函数的行为?
- 调用析构函数以释放动态分配的内存
- 使用常量析构函数是很有用的