![]() |
1
28
|
![]() |
2
8
编码错误-如果通过指向基类的指针调用,派生类的析构函数将永远不会被调用。
当你实施
基本规则是当一个类至少有一个
|
![]() |
3
7
如果存在虚拟函数,则需要有一个虚拟析构函数。总是。它只是一个接口类并不重要——它仍然需要虚拟析构函数。
要么,要么它需要一个
|
![]() |
4
4
带有虚函数但没有虚析构函数的类是可疑的,而且很可能是错误的:请看一个好的、更精确的解释 here . |
![]() |
5
2
这要看情况而定。如果您曾经调用过IBatch指针上的delete,它可能不会执行您所期望的操作。当然,如果您有类似于虚拟初始化/关闭或addref/releases的东西,那么它实际上不是一个问题。 |
![]() |
6
0
编译器将默认析构函数设置为非虚拟的,这意味着指向虚拟基类的指针上的“delete”将成功,并导致内存泄漏。因此,这是一个实现缺陷,既不是样式,也不是编码错误。 |
![]() |
AstralHex · 矩阵乘法代码工作不正常 5 月前 |
![]() |
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 5 月前 |
![]() |
Die4Toast · 递归调用成员箭头运算符-> 5 月前 |
![]() |
Anka Hanım · 关于结构和动态数组地址的问题 5 月前 |