使用带有C malloc的C构造函数的new

使用带有C malloc的C构造函数的new,第1张

概述你能安全地在C类的构造函数中使用malloc并使用new来创建该对象的实例吗?我知道在正常情况下将两者串联使用是不安全的,但在这种情况下是否可行/安全? >是的,你可以,但你应该有充分的理由. new运算符调用构造函数,它在很多方面就像常规类方法一样.您还应该将free()部分添加到析构函数中. 但是请注意,如果你使用malloc()一个c++对象,那么该对象的构造函数将不会被调用.我认为在c++ 你能安全地在C类的构造函数中使用malloc并使用new来创建该对象的实例吗?我知道在正常情况下将两者串联使用是不安全的,但在这种情况下是否可行/安全?解决方法 >是的,你可以,但你应该有充分的理由. new运算符调用构造函数,它在很多方面就像常规类方法一样.您还应该将free()部分添加到析构函数中.

但是请注意,如果你使用malloc()一个c++对象,那么该对象的构造函数将不会被调用.我认为在c++程序中调用malloc()的原因很少:你可能希望稍后重新分配(),这是一个原因.但您始终可以使用stl容器等本机c++对象.
>使用在c++程序中分配内存的两种方式并不是不安全的,你只需要小心不要使用malloc()某些东西,然后删除它或新的东西然后free()它.但是对于malloc(),你总是要小心许多事情,比如返回NulL和free()分配的内存,所以这不是额外的事情.

再一次,你可以做的最危险的事情是malloc()一个c++对象.因为正如我已经说过的,不会调用构造函数.

总结

以上是内存溢出为你收集整理的使用带有C malloc的C构造函数的new全部内容,希望文章能够帮你解决使用带有C malloc的C构造函数的new所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1217386.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存