c++动态创建对象数组问题!!!!!!
Point类,构造函数Point(inta){cout<<"......";......}我想用构造函数初始化对象。而且是用动态分配内存来处理Point*Ptr=newP...
Point 类,构造函数
Point(int a){cout<<"......";......}
我想用构造函数初始化对象。而且是用动态分配内存来处理
Point *Ptr=new Point[2];
delete[] Ptr;
以上方法可以调用构造函数以及析构函数
但是它调用的是默认的构造函数。。。。。。。。。不能进行初始化了就
我想按如下方法写
Point (*Ptr)[2];
Ptr[1]=new Point(a )
Ptr[2]=new Point(b)
delete [] p;
为什么就不行呢。
高人指点怎么动态创建对象数组而且!用构造函数初始化呢? 展开
Point(int a){cout<<"......";......}
我想用构造函数初始化对象。而且是用动态分配内存来处理
Point *Ptr=new Point[2];
delete[] Ptr;
以上方法可以调用构造函数以及析构函数
但是它调用的是默认的构造函数。。。。。。。。。不能进行初始化了就
我想按如下方法写
Point (*Ptr)[2];
Ptr[1]=new Point(a )
Ptr[2]=new Point(b)
delete [] p;
为什么就不行呢。
高人指点怎么动态创建对象数组而且!用构造函数初始化呢? 展开
3个回答
展开全部
以下是运行结果:
Default
Constructor
called.
Default
Constructor
called.
Deleting...
Destructor
called.
Destructor
called.
你的结果已经很明白了啊!
1.都调用了
默认构造函数
,因为你创建2个
对象
时都未给
参数
;
2.执行这两句时,对象
空间
已经分配好了,不调用
构造函数
了.只是执行附值的
任务
;
3.因为你是用new分配的
动态数组
空间,数组空间的释放就必须写[],其实在这儿是省略了[2]中的2的;
4.delete[]
Ptr;对应的是Deleting...;
后面
那2句是
析构函数
根据你的构造函数自动调用的,作用是释放不同构造函数申请的动态内存;
Default
Constructor
called.
Default
Constructor
called.
Deleting...
Destructor
called.
Destructor
called.
你的结果已经很明白了啊!
1.都调用了
默认构造函数
,因为你创建2个
对象
时都未给
参数
;
2.执行这两句时,对象
空间
已经分配好了,不调用
构造函数
了.只是执行附值的
任务
;
3.因为你是用new分配的
动态数组
空间,数组空间的释放就必须写[],其实在这儿是省略了[2]中的2的;
4.delete[]
Ptr;对应的是Deleting...;
后面
那2句是
析构函数
根据你的构造函数自动调用的,作用是释放不同构造函数申请的动态内存;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
动态数组比构造函数生成的晚。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Point* Ptr[2];
Ptr[0]=new Point(a )
Ptr[1]=new Point(b)
delete Ptr[0];
delete Ptr[1];
Ptr[0]=new Point(a )
Ptr[1]=new Point(b)
delete Ptr[0];
delete Ptr[1];
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询