首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

~关于析构

2012-06-05 
求助~关于析构#includeiostreamusing namespace stdclass A{int *iint a,b,cstatic int countpublic

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

热点排行