c++中那个new到底调不调用构造函数哦?
本文介绍了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_B
为 0
? new int
和 new int()
应该是一样的,Windows 下初始值为随机,*nix 下初始值为 0
这篇关于c++中那个new到底调不调用构造函数哦?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文