#include<iostream>
using namespace std;
class base
{
int x,y;
public:
base();
base(int i);
base(int i,int j);
~base();
void print();
};
base::base(){x=y=0;cout<<"无参数构造函数"<<endl;}
base::base(int i){x=i;y=0;cout<<"类型转换构造函数"<<endl;}
base::base(int i,int j){x=i;y=j;cout<<"一般构造函数"<<endl;}
base::~base(){cout<<"析构函数"<<endl;}
void base::print(){cout<<"对象的x值="<<x<<",y值="<<y<<endl;}
void main()
{
base *p;
p=new base[3];//创建3个base类的动态对象
p[0]=base();//请注意这里,撤销了因两次重复调用构造函数而产生的一个多余对象
p[1]=base(1,2);//请注意这里,撤销了因两次重复调用构造函数而产生的一个多余对象
p[2]=base(3);//请注意这里,撤销了因两次重复调用构造函数而产生的一个多余对象
for(int i=0;i<3;i++)
{
/*base(i).print();
cout<<"另一种的显式方法:\n";*///是错的
p[i].print();
}
delete []p;
}
using namespace std;
class base
{
int x,y;
public:
base();
base(int i);
base(int i,int j);
~base();
void print();
};
base::base(){x=y=0;cout<<"无参数构造函数"<<endl;}
base::base(int i){x=i;y=0;cout<<"类型转换构造函数"<<endl;}
base::base(int i,int j){x=i;y=j;cout<<"一般构造函数"<<endl;}
base::~base(){cout<<"析构函数"<<endl;}
void base::print(){cout<<"对象的x值="<<x<<",y值="<<y<<endl;}
void main()
{
base *p;
p=new base[3];//创建3个base类的动态对象
p[0]=base();//请注意这里,撤销了因两次重复调用构造函数而产生的一个多余对象
p[1]=base(1,2);//请注意这里,撤销了因两次重复调用构造函数而产生的一个多余对象
p[2]=base(3);//请注意这里,撤销了因两次重复调用构造函数而产生的一个多余对象
for(int i=0;i<3;i++)
{
/*base(i).print();
cout<<"另一种的显式方法:\n";*///是错的
p[i].print();
}
delete []p;
}