c++ 的问题(我是c++初学者)

来源:百度知道 编辑:UC知道 时间:2024/05/28 18:40:02
class b
。。。。
如果b中只有一个构造函数
那么ptr=new b[3];这个语句是否会调用三次构造函数
能不能说明一下理由,详细点。。。
这个原理是什么啊。。。为什么会是3次啊

肯定会啦,应该c++是每建立一个对象都自定调用一次构造函数,你定义了三个,当然也会调用三次啦。。

当然会保证调用三次啦,这个是C++语言所提供的功能。你可以通过重载new []来使得它不调用构造函数。比如STL中的allocator的一部分。。

#include<iostream>

using namespace std;

class Test
{
public:
Test()
{
cout<<"Go!"<<endl;
}
};

int main()
{
Test* p = new Test[3];

delete [] p;

return 0;
}