新手提问:关于析构函数和构造函数问题
sw98 2004-12-27 05:08:19 #include <iostream.h>
class b
{
int x,y;
public:
b(){x=y=0;cout<< "constructor1"<<endl;}
b(int i) {x=i;y=0;cout<<"constructor2"<<endl;}
b(int i,int j) {x=i;y=j;cout<<"constructor3"<<endl;}
~b(){cout<<"destructor"<<endl;}
void print()
{
cout<<"x="<<x<<",y="<<y<<endl;
}
};
void main()
{
b *ptr;
ptr=new b[3];
ptr[0]=b();
ptr[1]=b(5);
ptr[2]=b(2,3);
for (int i=0;i<3;i++)
ptr[i].print();
delete[] ptr;
}
为什么显示结果为
constructor1
constructor1
constructor1
constructor1
destructor
constructor2
destructor
constructor3
destructor
x=0,y=0
xd=5,y=0
x=2,y=3
destructor
destructor
destructor