// 动态构建对象特点: /**** 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
今日推荐
周排行