c++ 的问题(我是c++初学者)
来源:百度知道 编辑:UC知道 时间:2024/05/28 18:40:02
class b
。。。。
如果b中只有一个构造函数
那么ptr=new b[3];这个语句是否会调用三次构造函数
能不能说明一下理由,详细点。。。
这个原理是什么啊。。。为什么会是3次啊
。。。。
如果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;
}