美文网首页C/C++经验技巧总结我爱编程
C++在new一个对象时有没有进行内存初始化

C++在new一个对象时有没有进行内存初始化

作者: XDgbh | 来源:发表于2018-05-28 21:25 被阅读4次
    • 在C语言中,使用malloc开辟堆内存时,都不会对内存进行初始化,如果直接使用,可能会获取到奇奇怪怪的值。一般我们还会在后一句使用memset(p, 0, size)函数进行内存的清零初始化操作。
    • C++在new时的初始化的规律为:

    1、对于有自己写构造函数的类,不论类型名后面有没有括号,都用构造函数进行初始化;
    2、如果没有构造函数,则不加括号的new只分配内存空间,不进行内存的初始化,
    3、而加了括号的new会在分配内存的同时初始化为0。

    • 所以一般我们最好都在类型名加括号进行初始化Class *p = new Class();

    相关文章

      网友评论

        本文标题:C++在new一个对象时有没有进行内存初始化

        本文链接:https://www.haomeiwen.com/subject/zkdnjftx.html