为什么C++这样的方式创建的,如果你有一个A类和声明A型的数组,那么整个数组被填充有默认的构造函数实例化的对象班上?声明的对象数组:实例化它们
0
A
回答
2
因为当您创建一个给定大小的数组时,数组中的每个元素一旦创建就必须有效。
如果你想要一个不同的行为,你可以使用vector
和push_back
。矢量被创建为空;当你想添加一个新的元素时,push_back将会以你想要的方式创建一个对象并在矢量中创建一个副本。
+0
你可以使用['vector :: reserve'](http://www.cplusplus.com/reference/stl/vector/reserve/)来预留容量而不需要构建任何东西。 – 2012-04-26 22:05:29
+0
虽然,你不需要*有*创建一个向量空 - 你可以传递一个初始大小的构造函数,如果你想。 – 2012-04-26 22:06:34
相关问题
- 1. 声明成员类变量并实例化它们
- 2. 对象声明数组
- 3. 声明与实例化
- 4. Javascript对象在其声明中实例化
- 5. 用visual C++声明/定义和实例化COM对象?
- 6. 实例化WPF对象并使它们可用
- 7. 声明接口内的数组对象
- 8. PHP - 获取具有类数组的实例化对象数组
- 9. 对象实例化
- 10. 实例化对象
- 11. 声明实例类没有实例化和初始化 - 澄清
- 12. javascript/jquery动态对象数组声明
- 13. 声明类实例及其初始化
- 14. 如何在onCreate中实例化而不声明它最终
- 15. 对象的实例化
- 16. DocumentDatabase对象的实例化
- 17. 实例化对象的类
- 18. 实例化没有变量声明的对象是否有任何缺点?
- 19. 做我们在java的main()方法中声明的变量,是否被实例化为对象?
- 20. ActionScript - 从实例实例化新对象?
- 21. JUnit异常“对象不是声明方法的实例”
- 22. NMS:“该对象不是已声明类的实例”错误
- 23. 创建在构造对象的实例VS在类声明
- 24. Grails问题[对象不是声明类的实例]
- 25. Mockito对象不是声明类的实例
- 26. jackson-databind“对象不是声明类的实例”
- 27. com.fasterxml.jackson.databind.JsonMappingException:对象不是声明类的实例
- 28. 有问题声明对象数组的数组Java
- 29. RavenDb对象实例化
- 30. 从IType实例化对象
为了鼓励你使用'std :: vector';) – 2012-04-26 22:02:49
为了解决这个问题,会有什么替代方案?如果声明一个对象数组没有实例化它们,那么你将如何手动实例化它们?你需要使用新的位置来做到这一点吗?难道这不是很容易出错吗?鉴于对象需要在使用之前实例化,那么自动执行它似乎是对我来说最好的解决方案。如上所述,如果您希望在需要时使用它,请使用容器而不是静态数组。 – 2012-04-26 22:07:23