/*
*文件名称:pointer.cpp
*作 者:Zhao Tilu
*完成日期:2014年10月8日
*问题描述:在构造函数中开辟内存空间
*/
#include<iostream>
using namespace std;
class Human
{
public:
Human(){cout<<"构造函数执行中.....\n";i=new int(999);}//999存放到新空间,这个地址交给i。
~Human(){cout<<"析构函数执行中.....\n";delete i;}
int get()const{return *i;}//调用该函数返回整数999
private:
int *i;
};
int main()
{
Human *p=new Human; //在堆中构造了对象调用了构造函数,同时在构造函数中开辟了空间
cout<<p->get()<<endl;
delete p; //删除p指向堆中的对象,这将调用析构函数来释放掉在堆中开辟的用来容纳Human的空间,同时释放掉i的内存空间
return 0;
}
/*
*文件名称:pointer.cpp
*作 者:Zhao Tilu
*完成日期:2014年10月8日
*问题描述:在构造函数中开辟内存空间
*/
#include<iostream>
using namespace std;
class Human
{
public:
Human(){cout<<"构造函数执行中.....\n";i=new int(999);}//999存放到新空间,这个地址交给i。
~Human(){cout<<"析构函数执行中.....\n";delete i;}
int get()const{return *i;}//调用该函数返回整数999
private:
int *i;
};
int main()
{
Human *p=new Human; //在堆中构造了对象调用了构造函数,同时在构造函数中开辟了空间
cout<<p->get()<<endl;
delete p; //删除p指向堆中的对象,这将调用析构函数来释放掉在堆中开辟的用来容纳Human的空间,同时释放掉i的内存空间
return 0;
}