new出一个对象指针当然不会执行构造函数,同样delete掉该对象指针也不会执行析构函数。举例:
#include "iostream.h"
class A
{
public:
A()
{
cout<<"执行构造函数"<<endl;
}
~A()
{
cout<<"执行析构函数"<<endl;
}
};
int main()
{
cout<<"构造A "<<endl;
A a;//执行构造函数
cout<<endl;
cout<<"new一个A"<<endl;
A* pa;
pa=new A;//执行构造函数
cout<<endl;
cout<<"new一个A指针"<<endl;
A* *ppa;
ppa=new A*;//不执行构造函数
cout<<endl;
cout<<"析构A指针"<<endl;
delete ppa;//不执行析构函数
cout<<endl;
cout<<"析构A"<<endl;
delete pa;//执行析构函数
cout<<endl;
cout<<"a在堆栈,无法delete"<<endl;
getchar();
return 0;
}
Linux没用过,不过我猜跟windows相似。
在电脑上(只能在电脑上,其他地方很难说的)爱怎么new就怎么new,因为有虚拟内存。只是速度会变得很慢而已。程序结束后会被系统回收
温馨提示:内容为网友见解,仅供参考