读书人

~关于析构

发布时间: 2012-06-05 13:54:06 作者: rapoo

求助~关于析构
#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),就会自动调用析构函数,因为这样申请的是栈内存,希望对你有用。

读书人网 >C++

热点推荐