构造函数和析构函数的执行顺序

#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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值