知识点1.对象数组的初始化
#include<iostream>
using namespace std;
class Point{
int x,y;
public:
Point();//无参构造函数
Point(int);//带一个参的构造函数
Point(int,int);//带两个参的构造函数
void Print();
};
Point::Point(){
x=0;
y=0;
}
Point::Point(int xi,int yi){
x=xi;
y=yi;
}
Point::Point(int zi){
x=zi;
y=zi;
}
void Point::Print(){
cout<<"("<<x<<","<<y<<")";
}
int main(){
Point p1[4];//调用四次无参构造函数生成对象p1[0],p1[1],p1[2],p1[3];
Point p2[4]={5,6,7,8};//调用四次带一个参的构造函数生成对象p2[0],p2[1],p2[2],p2[3];
//也可以写成Point p2[4]={Point(5),Point(6),Point(7),Point(8)};
Point p3[4]={Point(9,10),Point(11,12),Point(13,14),Point(15,16)};//调用四次带两个参的构造函数
//生成对象p3[0],p3[1],p3[2],p3[3];
Point p4[4]={Point(17,18),Point(10,20)};//先调用两次两个参的构造函数生成对象p4[0],p4[1],再调用
//两次无参构造函数生成对象p4[2],p4[3];
Point p5[2][2]={21,22,Point(23,24)};//调用两次一个参的构造函数生成对象p5[0]],p5[1],再调用两个
//参的构造函数生成对象p5[2],最后调用无参构造函数生成对象p5[3];
int i;
for(i=0;i<4;i++)
p1[i].Print();
cout<<endl;
for(i=0;i<4;i++)
p2[i].Print();
cout<<endl;
for(i=0;i<4;i++)
p3[i].Print();
cout<<endl;
for(i=0;i<4;i++)
p4[i].Print();
cout<<endl;
for(i=0;i<2;i++)
for(int j=0;j<2;j++)
p5[i][j].Print();
cout<<endl;
return 0;
}
结果演示: