C++笔记(二)——构造/析构函数、对象数组

🍎1. 构造函数

一个类只能有一个默认构造函数

🍇1.1 构造函数的作用

​ 用来处理对象的初始化,不需要用户来调用,而在建立对象时自动执行。构造函数名必须与类名相同,不具备任何类型,不返回任何值

class Time
{
	public:
		Time();
}

🍇1.2 两种类型的构造函数

​ 在一个类中可以定义多个不同的构造函数,它们具有相同的名字,但是参数的个数和参数的形式会有所不同

  1. 不带参数的构造函数

  2. 带参数的构造函数

    class Time
    {
    	public:
    		Time();
    		Time(int, int, int);
    	private:
    		int a,b,c;
    }
    Time::Time(int x, int y, int z)
    {
    	a = x; b = y; c = z;
    }
    
    

🍇1.3 用参数初始化表对数据成员初始化

class Time
{
	public:
		Time();
		Time(int x, int y, int z):a(x),b(y),c(z){}
	private:
		int a,b,c;
}

🍎2. 析构函数

🍇2.1 析构函数的作用

  1. 撤销对象占用的内存之前完成的一些清理工作,使这部分内存可以被程序分配给新对象使用。
  2. 析构函数不返回任何值,没有函数类型,没有参数,不能被重载
  3. 一个类可以用多个构造函数,但只能有一个析构函数
  4. 用new运算符动态建立了一个对象,当用delete运算符释放该对象时,先调用该对象的析构函数

🍇2.2 构造函数和析构函数的顺序

先构造的后析构,后构造的先析构

🍎3. 对象数组

​ 在建立对象数组时,分别调用构造函数,对每个元素初始化。每个元素的实参分别用括号包起来,对应构造函数的一组形参,不会混淆。使用方法:

Time t[3] = {Time(1,2,3), Time(4,5,6), Time(7,8,9)};

一个使用的例子

#include<iostream>
using namespace std;
class Box
{
	public:
		Box(int h=10,int w=12,int len=15):height(h),width(w),length(len){}
		int volume();
	private:
		int height,width,length;
};

int Box::volume()
{
	return (height * width * length);
}

int main()
{
	Box a[3] = {Box(1,2,3),Box(4,5,6),Box(7,8,9)};
	cout << "volume of a[0] is " << a[0].volume() << endl;
	cout << "volume of a[1] is " << a[1].volume() << endl;
	cout << "volume of a[2] is " << a[2].volume() << endl;
}

下一章对象指针

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Ltd Pikashu

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值