这不是自己释放了2次;
可能是类互相引用,有类似现象释放资源时引起;还不太了解;
类对象作为函数参数也会引起;
下面是一个简单示例;
cpp
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
class A{
public:
A()
{
std::cout<<"String A"<<std::endl;
}
~A(){
std::cout<<"Ending Class A"<<std::endl;
}
};
A a1;
void func(A a)
{
return ;
}
int main(int argc,char **argv)
{
func(a1);
return 0;
}
从运行结果看,析构函数被调用了2次;