// 动态构建对象特点:
/****
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;
}
动态对象数组创建
最新推荐文章于 2024-07-12 21:58:44 发布