如何知道是否有类的析构函数
how to know if there is destructor of a class
我需要重载new[]/delete[]来维护内存资源。但是我发现 new[] 会为带有析构函数的类分配 4 个字节(int)。所以问题是:如何知道 new[] 是否为类数组分配 4 个字节以正确释放内存?
由于new
会为您的Type
类类型分配sizeof(Type)
字节,因此您可以使用它而不是硬编码值。
我发现了一个在 delete[] 中不释放的方法,因为编译器为非简单类型添加了一个 int,只需调用 delete 并让它处理这种情况。
相关文章:
- 什么时候调用组成单元对象的析构函数
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 内联映射初始化的动态atexit析构函数崩溃
- 什么时候调用析构函数
- 优先顺序:智能指针和类析构函数
- C++-明确何时以及如何调用析构函数
- 使用基类指针创建对象时,缺少派生类析构函数
- 在c++中使用向量时,如何调用构造函数和析构函数
- 重载运算符new[]的行为取决于析构函数
- 我需要知道编译器如何在cpp中使用析构函数
- 为什么在使用转换构造函数赋值后调用C++类的析构函数?
- 析构函数调用
- "virtual"对C++析构函数有何影响?
- shared_ptr如何<void>知道要使用哪个析构函数?
- C++联合如何知道其中存储的类型以及要调用哪个析构函数
- C++03 12.4/12对通过指针显式调用基类析构函数有何说明
- 是否可以在不知道类型的情况下调用析构函数
- 如何知道析构函数中的堆栈损坏来自何处
- 对于在同一地址构造两次的对象,编译器如何知道必须调用第二个析构函数
- 如何知道是否有类的析构函数