#include<iostream> //202130310282
using namespace std;
class Coordinate //定义Coordinate类
{
public:
Coordinate() //构造函数
{
times = 2;
cout << "Coordinate construction1 called!" << endl;
}
Coordinate(int times1) //带参构造函数
{
times = times1;
cout << "Coordinate construction2 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 /= times;
avgy /= times;
cout << "The AVG coord is:" << endl;
cout << "(" << avgx << "," << avgy << ")" << endl;
}
private:
int times;
float Coord[100][100];
};
int main()
{
Coordinate x; //定义对象
x.InputCoord();
x.ShowCoord();
x.ShowAvgCoord();
Coordinate y(5); //定义带参对象
y.InputCoord();
y.ShowCoord();
y.ShowAvgCoord();
return 0;
}
上述例程构造函数运行顺序:
(1) x.~Coordinate()
(2) y.~Coordinate()
上述例程析构函数运行顺序:
(1) y.~Coordinate()
(2) x.~Coordinate()
在main()函数中加入如下代码,观察运行结果:
Coordinate y(5);
y.InputCoord();
y.ShowCoord();
y.ShowAvgCoord();
202130310282