#include
using namespace std;
class point{
public:
point(int xx=0,int yy=0);point();point(){
point(point &p);
void print(){
cout<<x<<" "<<y<<endl;
}
void move(int newx,int newy){
x=newx;
y=newy;
}
private:
int x;
int y;
};
point::point(point &p){
x=p.x;
y=p.y;
cout<<"执行复制构造函数"<<" "<<x<<" "<<y<<endl;
}
point::point(int xx,int yy){
x=xx;
y=yy;
cout<<"执行构造函数"<<" "<<x<<" "<<y<<endl;
}
point::
cout<<"执行析构函数"<<" "<<x<<" "<<y<<endl;
}
int main(){
int i=0,j=7;
point a[4]={point(10,20),point(20,30)};
for(i=0,j=7;i<3;i++,j++){
a[i].move(i,j);
}
a[3]=a[1];
for(i=0;i<4;i++){
a[i].print();
}
return 0;
}
为什么报错,错误截图,谢谢
因为你的point数组里面的元素没有全部指定参数, 只有指定两个, 剩下两个会调用无参构造, 而你的声明里面没有重载无参构造