动态对象数组创建

// 动态构建对象特点:
/****
	1、在程序运行过程中创建和释放的变量或对象 位堆对象,分别用new 和 delete 运算符来完成。
	2、堆动态对象为生存期可控对象,可以随时delete 释放
	3、动态申请对象数组,该对象一定要有默认构造函数 或 构造函数最左形式参数一定要有默认值 
***/ 
#include <iostream>
using namespace std;
class point
{
public :
	//动态构建对象数组一定要有默认构造函数,或带默认形参的构造函数 
	point(){
	}
	 //point(int i=0, int j=0 )
	 point(int i, int j )
	 {
		 x=i ; y=j ;
		 cout<<"constructor called."<<endl; 
	 }
	 ~point()
	 {
		 cout<<"destruct called. "<<endl; 
	 }
	 int getx()
{
   return x;
}
	 int gety()
{  
return y;
}
 private:
	 int x, y;
};
int main()
{
	point *PA1, *PA2;
	PA1=new point(1,2);   // 动态创建对象,调用构造函数,并赋初值1,2
	PA2= new point(3,4);  // 动态创建对象,调用构造函数,并赋初值3,4
	cout<<PA1->getx()<<","<<PA1->gety()<<endl;
	cout<< PA2->getx()<<","<<PA2->gety()<<endl;
	delete PA1;   // 撤消动态对象PA1,自动调用析构函数
	delete PA2;  // 撤消动态对象PA2,自动调用析构函数
	point *PA=new point[2];// 动态创建对象数组,调用构造函数两次,使用参数默认值
	cout<<PA[0].getx()<<","<<PA[0].gety()<<endl;
	delete[ ] PA;  // 撤销对象数组,自动调用析构函数两次
	return 0;
}

猜你喜欢

转载自javaeye-hanlingbo.iteye.com/blog/2408106
今日推荐