求助~关于析构
#include<iostream>
using namespace std;
class A{
int *i;
int a,b,c;
static int count;
public:
A(int q,int w,int e){
a=q;b=w;c=e;
i=new int(b);
}
static int get(){
count++;
return count;
}
~A(){
std::cout<<"析构函数"<<endl;
}
};
int A::count=0;
void main(){
int a=4,b=5,c=6;
cout<<A::get()<<endl;
A *d=new A(a,b,c);
cout<<d->get()<<endl;
cout<<d->get()<<endl;
cout<<d->get()<<endl;
}
???????????????????????????????????
为什么就过没有输出 析构函数 ???????????????????
???????????????????????????????????
[解决办法]
因为你涉及到了堆内存的申请,所以要用delete进行释放,系统是不会主动释放的。若你采用直接A d(4,5,6),就会自动调用析构函数,因为这样申请的是栈内存,希望对你有用。