你会如何替换'new'关键字?

0 c++ language-design keyword new-operator

我很久以前发现了一篇文章(我找不到ATM),它说明了为什么C++中的新关键字不好.我不记得所有的原因,但我最记得的两个是你必须匹配new与删除,新[]与删除[]你不能使用#define与新的尽可能使用malloc.

我正在设计一种语言,所以我想问你如何改变C++语言,这样新的更友好.随意陈述新的和文章的问题.我希望我能找到这篇文章链接,但我记得它很长,并且是由(IIRC)一所着名学校的教授撰写的.

Kir*_*sky 6

我看不出有任何理由new用其他东西替换关键字(似乎是C++委员会同意我的意见).它很清楚并且应该做到.你可以operator new在你的类中覆盖,不需要使用定义.

消除new[]/ delete[]问题你可以使用std::vector.

如果你想使用智能指针你可以使用它,但我想控制何时使用智能指针.这就是为什么我喜欢它在C++中的工作原理 - 能够控制低级细节的高级行为.

  • 同意.相反,我会在Java中替换new关键字,因为无论如何都不能将对象放在堆栈上! (6认同)