C++:对象数组及对象指针

本文介绍了C++中对象数组的定义、初始化过程,包括构造函数和析构函数的自动调用,以及对象指针的使用,包括初始化、动态创建和释放。
摘要由CSDN通过智能技术生成

对象数组:

定义、使用对象数组与普通对象方法相似,定义时,系统自动为对象数组的成员分配内存空间,并且自动调用构造函数初始化成员对象,生命周期结束后调用析构函数

格式:

//定义
类名 对象数组名[成员个数]={ {析构函数初始化数据} ,{...}  ,{...} };

//有权访问成员
对象数组名[成员序数] . 成员;

//有权访问函数
对象数组名[成员序数] . 成员函数(参数列表);   

数组中的每个对象都自动调用构造函数和析构函数。

数组内按照序号顺序调用构造函数,析构函数调用顺序序号顺序相反,先构造的后析构

class z
{
private:
	int a; int b; int c;
public:
	z(int e = 0, int f = 1, int g = 1) :a(e), b(f), c(g)
	{
		cout <<a<< ":调用构造" << endl;
	}
	~z()
	{
		cout << a<< "  :调用析构" << endl;
	}
};

int main()
{
	z a[4] = { {},{1},{2,3},{4,5,6} };
	return 0;
}

输出:

对象指针:

对象指针在使用之前必须先进行初始化。可以让它指向一个已定义的对象,也可以用new运算符动态建立堆对象。

格式:

//定义
类名 *对象名=&已定义的对象;
类名 *对象名=new 类名{初始化数据};

//访问
对象指针名->成员;
对象指针名->成员函数(实参列表);

引例:

class z
{
private:
	int a; int b; int c;
public:
	z(int e = 0, int f = 1, int g = 1) :a(e), b(f), c(g)
	{}
	void show()
	{
		cout << a << " " << b << " " << c << endl;
	}
};

int main()
{
	z a(1,2,3);
	z* b = &a;
	b->show();

	z* c = new z(4, 5, 6);
	c->show();
	delete c;
}

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值