C++ 对象数组(整理)

C++对象数组

  • 一、对象数组的定义
  • 二、对象数组的特性
  • 三、对象数组的使用
    • 3.1 构造函数没有参数
    • 3.2 构造函数有一个参数
    • 3.3 构造函数有多个参数
  • 四、为什么要使用对象数组?

一、对象数组的定义

所谓对象数组,指每一个数组元素都是对象的数组,即若一个类有若干个对象,我们把这一系列的对象用一个数组来存放。对象数组的元素是对象,不仅具有数据成员,而且还有函数成员。

二、对象数组的特性

1、在建立对象数组的时候需要调用构造函数,有多少个对象就要调用多少次构造函数。

2、如果对象数组含有析构函数,那么建立对象数组时按每个元素出现的顺序调用构造函数,按相反的顺序调用析构函数。

3、对象数组的初始化究竟是什么形式,本质上取决于所属类的构造函数。
如果对象数组所属类有带参数的构造函数,可用初始化列表按顺序调用构造函数,使用复制初始化来初始化每个数组元素。

如果对象数组所属类有单个参数时,定义数组时可以直接在初始化列表中提供实参。

对象数组创建时若没有初始化,则其所属类要么有合成默认构造函数,要么定义无参数的构成函数或全部参数为默认参数的构造函数。

三、对象数组的使用

3.1 构造函数没有参数

各元素对象的初值要求为相同的值时,应该在类中定义不带参数的构造函数或者是默认构造函数。

#include
using namespace std;
class exam {
public:
	exam() {
		x = 2022;
	}
	int getX() {
		return x;
	}
	~exam() {};
private:
	int x;
};
int main()
{
	exam a[5];
	for (int i = 0; i < 5; i++)
	{
		cout << a[i].getX() << " ";
	}
	cout << endl;
	return 0;
}

C++ 对象数组(整理)_第1张图片

3.2 构造函数有一个参数

#include
using namespace std;
class exam {
public:
	exam() {
		x = 2022;
	}
	exam(int a) {
		x = a;
	}
	int getX() {
		return x;
	}
	~exam() {};
private:
	int x;
};
int main()
{
	exam a[5]={0,1,2,3,4};
	exam b[5] = { 0,1};
	exam c[5];
	for (int i = 0; i < 5; i++)
	{
		cout << a[i].getX() << " ";
	}
	for (int i = 0; i < 5; i++)
	{
		cout << b[i].getX() << " ";
	}
	for (int i = 0; i < 5; i++)
	{
		cout << c[i].getX() << " ";
	}
	cout << endl;
	return 0;
}

C++ 对象数组(整理)_第2张图片

3.3 构造函数有多个参数

各元素对象的初值要求为不同的值时,需要定义带形参的构造函数。

#include
#include
using namespace std;
class Complex{
	public:
		Complex(double r=0.0,double i=0.0):real(r),imag(i){
		}
		~Complex(){
			cout<<"Destructor called."<

四、为什么要使用对象数组?

C++中使用对象数组的主要原因是可以方便地创建多个对象,并且可以通过下标访问和操作这些对象。对象数组可以用于存储和处理大量的数据。
例如在游戏开发中,可以使用对象数组来存储和管理游戏中的角色、道具等信息。此外,对象数组还可以用于实现一些数据结构,例如队列、栈等。

在使用对象数组时,需要注意对象的构造函数和析构函数的调用,以及对象数组的初始化方式。

你可能感兴趣的:(c++,开发语言)