我有一个指针数组:pArray[rows][columns],每个元素都可以包含一个指向对象的指针.一些对象main()在堆上实例化,有些对象本身也在堆上实例化:也就是说,我传递pArray给一个对象成员函数,该函数创建了一个新对象,并在其中放入一个指针pArray.
现在,当我想要删除指向对象的指针时pArray,这里是否有所有权?意思是,如果一个对象创建了一个新对象并放置了一个指向它的指针,那么pArray只能创建者对象在该指针上调用delete吗?或者我可以main()通过将数组传递给它们来实现它和其他对象吗?
更多细节:
代码模拟网格上的捕食者猎物模型(pArray).于是,我开始从一个文件中的初始网格配置读书,和实例化对象(天敌,和猎物),对pArray从main().但是捕食者和猎物可以繁殖,因此物体会产生新的物体并通过传递pArray给它们,它们会实现它们的孩子pArray.
使用原始指针所有权纯粹是一个概念.只要您使用原始指针,完全取决于您将指向对象的所有权分配给任何人和任何东西.这是你的设计问题.没有这样的"规则",即创建它们的人应该删除该对象.所有权可以保留或传递.可以共享所有权(如在参考计数的所有权计划中).同样,这是您的设计和意图的问题.
各种智能指针类将帮助您表达您的意图并实现您的意图.使用原始指针,您必须记住谁拥有什么并手动完成所有操作.
| 归档时间: |
|
| 查看次数: |
1926 次 |
| 最近记录: |