构造函数
构造函数名和类名相同,没有返回值类型(连void都不可以),可以有参数(可以重载),权限为 public 先给对象开辟空间(实例化)然后调用构造函数(初始化)。构造函数的运行顺序为:先进入main函数,之后进入Coordinate()函数,默认两对坐标,先输入Coordinate construction1 called!,后转到void InputCoord()输入两对坐标,最后调用析构函数。
析构函数
析构函数函数名和类名称相同,在函数名前加~,没有返回值类型,没有函数形参。(不能被重载) 当对象生命周期结束的时候 系统自动调用析构函数。 先调用析构函数 再释放对象的空间。 一般情况下,系统默认的析构函数就足够。但是如果一个类有指针成员,这个类必须 写析构函数,释放 指针成员所指向空间。
代码
#include<iostream>
using namespace std;
class 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;
}// 显示已经输入的坐标
析构函数的运行顺序为:析构函数在程序执行完Return 0后执行,用于释放分配给对象的内存空间在main函数中加入以下代码后
Coordinate y(5);y.InputCoord();y.ShowCoord();y.ShowAvgCoord();return 0;
运行结果: