c++显示一组二维坐标值

这篇博客探讨了C++中的类和对象,特别是构造函数和析构函数的使用。示例代码展示了一个Coordinate类,用于存储和操作坐标点。对象x使用默认构造函数,而对象y通过参数初始化创建,调用析构函数时,显示了两次“Coordinatedestructioncalled!”,表明内存被正确释放。博客强调了构造函数在对象创建时的作用和析构函数在对象销毁时的资源回收功能。
摘要由CSDN通过智能技术生成

代码:                                                                                    //202130310215

#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;

         }                                                 // 显示已经输入的坐标

      }

     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;

         cout << "(" << avgx << "," << avgy << ")" << endl;// 显示输入坐标的均值

     }

     private:

     float Coord[100][100];                               // 存放输入坐标的数组

     int times;                                           // 存放输入坐标数目

                        };

 int main()

{

     Coordinate x;                                              // 定义对象

     x.InputCoord();

     x.ShowCoord();

     x.ShowAvgCoord();

     return 0;

     // 执行显示和坐标均值运算

 }

运行结果:

  • main()函数中加入如下代码,观察运行结果:

Coordinate y(5);

y.InputCoord();

y.ShowCoord();

y.ShowAvgCoord();

运行结果:

//发现对象x采取的是默认值两个对象数组元素,y则定义了5个对象数组元素,需要输入五组数据,才会返回值。

非代码部分:

析构函数的运行顺序:

Coordinate中定义了构造函数和析构函数,在执行return语句之后,主函数中的语句已执行完毕,对象A的周期结束,在撤销对象x时就要调用析构函数,释放分配给对象x的储存空间,并显示信息“Coordinate destruction called!”,本条信息不是必须显示,只是说明析构函数被调用了,更加直观,便于学习。

在主函数中假如y后,析构函数在return语句后将对象x,y的储存空间都释放,共被调用了两次,所以显示两次Coordinate destruction called!”。

 

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值