【发布时间】:2017-02-18 09:15:26
【问题描述】:
我在掌握 C++ 数组的一些概念时遇到了一些困难。
-
在我的任务中,我做了类似下面的代码。据我所知,这不仅在堆上为 [size] Object1 对象创建了空间,而且还初始化了所有对象。有人可以在这里解释堆和堆栈上到底发生了什么吗?
class Object1 { Private: int dummy; Public: Object1(); }; Object1::Object1() { dummy = 1; } class Foo { private: Object1 * myObject; public: Foo(int size); }; Foo::Foo(int size) { myObject = new Object1[size]; } -
如果 Object1 的构造函数采用了参数,如下面的代码所示,那么堆栈和堆上会发生什么不同(如果有的话)?我没有向 object1 的每个实例发送任何参数,所以它仍然会初始化任何对象,还是只是创建空间?
class Object1 { Private: int dummy; Public: Object1(int myInt); }; Object1::Object1(int myInt) { dummy = myInt; } -
我还在某处看到了下面的代码。在这种情况下发生了什么,它与上述情况有何不同?
myclass *array[10]; for (int i = 0 ; i != 10 ; i++) { array[i] = new myclass(); }
我已经完成了任务,但我只是想确保我了解幕后发生的事情。
提前感谢您抽出时间提供帮助!
【问题讨论】:
标签: c++ arrays object heap-memory