bra*_*411 3 c c++ memory malloc new-operator
你能安全地在C++类的构造函数中使用malloc并使用new来创建该对象的实例吗?我知道在正常情况下将两者串联使用是不安全的,但在这种情况下是否可行/安全?
是的,你可以,但你应该有充分的理由.该new运营商调用构造函数,在许多方面就像一个普通class的方法.您还应该将该free()部件添加到析构函数中.
但请注意,如果您malloc()是c ++对象,则不会调用该对象的构造函数.我认为malloc()在c ++程序中调用的原因很少:你可能希望realloc()稍后,这是一个原因.但是你总是可以使用本机c ++对象,比如stl容器.
使用在c ++程序中分配内存的两种方式并不是不安全的,你只需要注意不要做malloc()某些东西,然后再做delete它或new什么然后free()它.但是malloc()你总是要小心许多事情,比如它返回NULL和free()分配的内存,所以这不是一件额外的事情.
再一次,你可以做的最危险的事情是malloc()一个c ++对象.因为正如我已经说过的,不会调用构造函数.
| 归档时间: |
|
| 查看次数: |
135 次 |
| 最近记录: |