有没有办法在编译时检查“A在B之前被破坏”形式的破坏顺序约束?
问问题
91 次
3 回答
2
我不认为这是可能的。以下面的代码为例:
int main(int argc, char **argv){
Object A = new Object(), B = new Object();
if(argc == 1){
delete A;
delete B;
}else
{
delete B;
delete A;
}
}
您如何在编译时知道首先调用哪个析构函数?
于 2012-05-16T09:15:49.410 回答
0
您可以通过向析构函数添加命令来轻松检查。请参阅(例如此处获取更详细的说明): http: //msdn.microsoft.com/en-us/library/8183zf3x (v=vs.80).aspx
亲切的问候,博
于 2012-05-16T09:19:52.023 回答
0
它对于自动变量是固定的,对于动态分配的对象不能固定。此外,如果您的问题是针对类的成员对象,那么是的,它是固定的。在类声明中首先列出的成员,它们首先被销毁。
于 2012-05-16T09:26:47.997 回答