c++中那个new到底调不调用构造函数哦?

查看:212
本文介绍了c++中那个new到底调不调用构造函数哦?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

#include <iostream>

using namespace std;
class A
{
public:
    A()
    {
        cout << "called A\n";
    }
};

class B : public A
{

};

int main()
{
    B* ptr = new B;
    int* int_A = new int;
    int* int_B = new int();
    cout << *int_A << endl;
    cout << *int_B << endl;
    return 0;
}

测试代码如上,new B的时候应该是调用了构造函数的吧。但是为什么我new int的时候就不调用了呢?要new int()它才会调用?打印出*int_A就是个随机数啊?请问这是怎么回事?new type,不是三步吗,分别是分配内存,调用构造函数,然后再赋值的吗?

解决方案

每次都是 int_A 随机,int_B0new intnew int() 应该是一样的,Windows 下初始值为随机,*nix 下初始值为 0

这篇关于c++中那个new到底调不调用构造函数哦?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆