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 次 |
最近记录: |