在使用C malloc的C ++构造函数中使用new

布拉德95411

您可以安全地在C ++类的构造函数中使用malloc并使用new创建该对象的实例吗?我知道在正常情况下将两者同时使用是不安全的,但是在这种情况下是否可能/安全?

伊哈罗布·阿西米(Iharob Al Asimi)
  1. 是的,您可以,但是您应该有充分的理由。new运营商调用构造函数,在许多方面就像一个普通class的方法。您还应该将free()零件添加到析构函数。

    但是请注意,如果您使用的malloc()对象,则不会调用该对象的构造函数。我认为malloc()程序中调用的原因很少:您可能希望realloc()稍后再讲,这是原因之一。但是您始终可以使用本机对象,例如容器。

  2. 这不是不安全的使用在分配内存的两种方式程序,你就必须要小心,不要malloc()的东西,然后delete它或new东西,然后free()它。但是对于malloc()您而言,始终必须小心许多事情,例如返回NULLfree()分配已分配的内存,因此这不是多余的事情。

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在构造函数中使用“ new”?C ++

来自分类Dev

C:在malloc()中使用getpagesize()

来自分类Dev

构造函数中使用lambda的C ++类

来自分类Dev

在C ++构造函数中使用new运算符是否正确?

来自分类Dev

在c中使用malloc时的自由变量

来自分类Dev

在C中使用malloc保留内存

来自分类Dev

在C中使用malloc不起作用

来自分类Dev

何时在 C 中使用 calloc 或 malloc

来自分类Dev

在g ++中使用版本脚本导出c ++构造函数

来自分类Dev

如何避免在 C++ 中使用静态构造函数?

来自分类Dev

无法在构造函数中使用括号括起来的列表-C ++

来自分类Dev

多边形,在构造函数中使用的重写方法-C ++

来自分类Dev

在C ++中使用不同的struct复制构造函数

来自分类Dev

如何在C#中使用构造函数调用方法?

来自分类Dev

在C ++中使用构造函数参数创建向量

来自分类Dev

如何在C ++中的类构造函数中使用线程?

来自分类Dev

C ++在构造函数中使用数组启动对象

来自分类Dev

不允许在 C++ 中使用默认构造函数

来自分类Dev

为什么在C ++中使用私有副本构造函数与已删除副本构造函数

来自分类Dev

C# 在另一个构造函数中使用构造函数

来自分类Dev

如何使用GC_malloc然后在C ++中调用构造函数?

来自分类Dev

在 c/c++ 中使用 malloc 在另一个函数中填充 char*

来自分类Dev

C - 使用 malloc() 的分段错误(核心愚蠢)

来自分类Dev

使用c中的malloc实现堆栈[BEGINNER]

来自分类Dev

在c中正确使用malloc()和free()

来自分类Dev

使用malloc的C中的分段错误

来自分类Dev

如何在C中正确使用malloc?

来自分类Dev

在C ++中使用new

来自分类Dev

在C ++中使用* new

Related 相关文章

热门标签

归档