我最终写了一些代码:

Asteroid *a = new Asteroid( asteroidCollection ) ;

事实证明,我不需要变量a,因为在Asteroid构造函数中,new Asteroid最终将自己添加到asteroidCollection中。

所以我最终能够写:
new Asteroid( asteroidCollection ) ;

考虑到我什至不需要退货,这是不好的风格吗?我应该做到吗
asteroidCollection->createNew() ;

要么
asteroidCollection->add( new Asteroid() ) ;

最佳答案

我会说这是不好的风格,因为在阅读代码时会造成混淆。首先想到的是您发生内存泄漏。仅在查看构造函数的内部并弄清楚该对象将自己添加到某个列表中以供以后删除之后,这种困惑才消失。

还要考虑可能的异常情况。最好将分配的对象存储在某种智能指针中,然后将其添加到集合中。

10-01 17:00