电自三班 202130310261
代码如下:
#include<iostream>
using namespace std;
class Coordinate {
public:
Coordinate()
{
times = 2;
cout << "Coordinate construction1 called!" << endl;
}
Coordinate(int times1)
{
times = times1;
cout << "Coordinate constuction2 called!" << endl;
}
~Coordinate()
{
cout << "Coordinate destruction called!" << endl;
}
void inputCoord()
{
for(int i=0;i<times;i++)
{
cout << "Please Input x:" << endl;
cin >> Coord[i][1];
cout << "Please Input y:" << endl;
cin >> Coord[i][2];
}
}
void ShowCoord()
{
cout << "The coord is:" << endl;
for(int i=0;i<times;i++)
{
cout << "(" << Coord[i][1] << "," << Coord[i][2] << ")" << endl;
}
}
void ShowAvgCoord()
{
float avgx = 0;
float avgy = 0;
for(int i=0;i<times;i++)
{
avgx = avgx + Coord[i][1];
avgy = avgy + Coord[i][2];
}
avgx = avgx / times;
avgy = avgy / times;
cout << "The Avg coord is:" << endl;
}
private:
float Coord[100][100];
int times;
};
int main()
{
Coordinate x;
x.inputCoord();
x.ShowCoord();
x.ShowAvgCoord();
return 0;
}
1.观察构造函数运行顺序
在初始化时先调用基类构造函数,再调用子类构造函数。
2、析构函数的运行顺序
析构函数在对象销毁时调用,运行顺序与构造函数相反,先调用子类析构函数,再调用基类析构函数。
3.添加代码
Coordinate y(5);
y.inputCoord();
y.ShowCoord();
y.ShowAvgCoord(); 并观察运行结果:
如上图,将显示5组二维坐标。