大神.这个构造函数为什么会执行两次
求助大神.这个构造函数为什么会执行两次
这个new不是被重载了吗,只是在重载里有一个全局的new, 照理说应该只执行一次啊,
------解决思路----------------------
我的理解:main里面创建一个对象,就要调用构造函数,怎么重载new都不影响main里面这个调用。试试把重载里面那个new换成malloc,还是会有一次构造函数
#include <iostream>
using namespace std;
class mystr
{
public:
mystr()
{
cout << "mystr" << endl;
}
~mystr()
{
cout << "~mystr" << endl;
}
void * operator new(size_t size)
{
cout << "对象被创建" << endl;
mystr *my1 = ::new mystr;
return my1;
}
};
int main()
{
mystr *my1 = new mystr;
getchar();
return 0;
}
这个new不是被重载了吗,只是在重载里有一个全局的new, 照理说应该只执行一次啊,
------解决思路----------------------
我的理解:main里面创建一个对象,就要调用构造函数,怎么重载new都不影响main里面这个调用。试试把重载里面那个new换成malloc,还是会有一次构造函数