用c++中的析构函数与构造函数求box的体积

本文详细介绍了C++中的构造函数和析构函数,包括它们的作用、用法及注意事项。通过实例展示了如何使用构造函数初始化类对象的数据成员,以及析构函数在对象生命周期结束时回收资源的功能。同时,给出了使用析构和构造函数生成并遍历对象数组的代码示例,强调了指针遍历的重要性。
摘要由CSDN通过智能技术生成

1.构造函数:

(1)构造函数的任务:初始化类对象的数据成员

(2)构造函数的用法:1.构造函数名与类名相同;2.构造函数可以被重载;3.构造函数不可以被声明为const类型;4.构造函数不需要用户调用,系统自己会调用;

(3)构造函数的常规构造方法:

#include<iostream>
using namespace std;
class box
{
 public:
   box()
   {
   /*来初始化相关数据*/ 
   } 
private:
   /*相关变量*/
};
int main()
{

/*相关的代码此处省略
*/
return 0;
}

2.析构函数:

(1)析构函数的用处:释放、回收、撤销相关对象

(2)析构函数的注意点:1.主要用于对象生命期结束时回收对象;2.与类同名(但是在前面加上“~”符号);3.析构函数没有返回值 ;4.析构函数在文件内只有一个且不含参数;

(3)析构函数的常规用法:

#include<iostream>
using namespace std;
class person
{
public:
   person()/*无函数参数的构造函数*/
  {
   /*相关代码此处省略*/
  }
   person(float h, float w)/*有函数参数的构造函数*/
  {
      /*相关代码省略*/
  } 
   ~person() /*来消除和释放构造函数产生的类对象*/
   {
   /*相关代码此处省略!*/
   }
};
int main()
{
/*此处省略相关代码*/
return 0;
/*见下文代码*/
}

3.用析构、构造函数来生成相关对象(用指针来进行遍历):

#include<iostream>
using namespace std;
class BOX
{
public:
    BOX()
    {
        length = 1;
        width = 1;
        height = 1;
        cout <<"这个盒子的长,宽,高 分别为:"<< length << width << height <<endl;
        cout <<"这个盒子已经被创建!" <<endl;
    }
    BOX(float L , float W, float H)
    {
        length = L;
        width = W;
        height = H;
        cout <<"这个盒子的长,宽, 高 分别为" << length << width << height <<endl;
        cout <<"这个盒子已经用第二种方法创建了!"<<endl;
    }
    float volume()
    {
        return length * width * height;
    }
    ~BOX()
    {
        cout << "这个盒子的长,宽 ,高为:" << length << width << height <<endl;
        cout << "这个函数已经被调用析构函数消除了! " <<endl;
    }
private:
    float length ,width, height;
};
int main()
{
    BOX boxs[] = { BOX(1,3,5), BOX(2,4,6),BOX(6,2,3) };
    BOX *pbegin = begin(boxs);
    BOX *pend = end(boxs);
    while(pbegin != pend)
    {
        cout << "这个盒子的体积为:"<<pbegin -> volume() <<endl;
        ++pbegin;
    }
    return 0;
}

(1)解释:pbegin 指向boxs数组的首元素,pend 指向boxs数组尾元素的下一个位置,以此来遍历对象,并计算相关体积;

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小捣蛋.

建议你还是留着你的小钱吧!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值