首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++初始化对象数组

C++初始化对象数组
EN

Stack Overflow用户
提问于 2016-10-10 00:49:00
回答 1查看 5.4K关注 0票数 0

我在掌握C++数组的一些概念时遇到了一些小问题。

  1. 在我的作业中,我做了一些类似于下面的代码。据我所知,这不仅为大小Object1对象在堆上创建了空间,而且还初始化了所有这些对象。有人能解释一下堆和堆上到底发生了什么吗? 类Object1 {私有: int虚拟;Public: Object1();};Object1 1::Object1 1(){ myObject = 1;}类Foo {Object1* myObject;public: Foo(int大小);};Foo::Foo(int size) {myObject=新Object1size};
  2. 如果Object1 1的构造函数采用了一个参数,如下面的代码所示,那么在堆栈和堆上会发生什么不同的事情呢?我不会向object1的每个实例发送任何参数,所以它仍然会初始化任何对象,还是只创建空间? 类Object1 {私有: int虚拟;Public: Object1(int myInt);};Object1 1::Object1 1(Int myInt) { dummy = myInt;}
  3. 我也在下面的某个地方看到了代码。在这种情况下发生了什么,与上述情况有何不同? myclass * arrayi 10;for (int i=0;i != 10;i++) {arrayi=新myclass();}

我已经完成了任务,但我只是想确保我能理解幕后发生的事情。

谢谢你提前抽出时间来帮忙!

EN

回答 1

Stack Overflow用户

发布于 2016-10-10 00:56:55

如果类没有默认构造函数,则无法使用:

代码语言:javascript
复制
myObject = new Object1[size];

之间的区别

代码语言:javascript
复制
myObject = new Object1[size];

代码语言:javascript
复制
myclass *array[10];
for (int i = 0 ; i != 10 ; i++) {
    array[i] = new myclass();
}

第一个方法分配size对象,并将指向myObject中对象数组的指针存储起来。

第二个对象分配10个对象,但有10个指针。每个指针只指向一个动态分配的对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39949984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档