对象数组初始化 (10 分)

时间:2024-03-04 22:27:52

6-10 对象数组初始化 (10 分)

根据类定义,进行对象数组的定义,按照输出样例输出相应的数据。

类定义:

#include<iostream>
using namespace std;
class A{
    int data;
public:
    A(int k=0){
        data=k;
    }
    void show(){
        cout<<"data="<<data<<endl;
    }
};

###编写main函数,定义三个对象数组,完成指定的输出

/* 请在这里填写答案 */

输入样例:

输出样例:

在这里给出相应的输出。例如:

data=0
data=0
data=0

data=1
data=0
data=0

data=1
data=2
data=3

ac代码

#include<iostream>
using namespace std;
class A{
    int data;
public:
    A(int k=0){
        data=k;
    }
    void show(){
        cout<<"data="<<data<<endl;
    }
};
int main()
{
	/***第一次对象数组的构造***/
	A A_L[3]={0,0,0};
	/***第一次输出***/
	for(int i=0;i<3;i++)
	{
		A_L[i].show();
	}
	/***换行符***/
	cout<<endl;
	
	/***第二次对象数组的构造***/
	A B_L[3]={1};
	/***第二次输出***/
	for(int i=0;i<3;i++)
	{
		B_L[i].show();
	}
	/***换行符***/
	cout<<endl; 
	
	/***第三次对象数组的构造***/
	A C_L[3]={1,2,3};
	/***第二次输出***/
	for(int i=0;i<3;i++)
	{
		C_L[i].show();
	}
	return 0;
}

错误代码

#include<iostream>
using namespace std;
class A{
    int data;
public:
    A(int k=0){
        data=k;
    }
    void show(){
        cout<<"data="<<data<<endl;
    }
};
int main()
{
	A A_L[3]={0,0,0};
	/***第一次输出***/
	for(int i=0;i<3;i++)
	{
		A_L[i].show();
	}
	cout<<endl;
	A_L[0].data=1;
	
	/***第二次输出***/
	for(int i=0;i<3;i++)
	{
		A_L[i].show();
	}
	
	/***第三次输出***/
	for(int i=0;i<3;i++)
	{
		A_L[i].A(i+1);
		A_L[i].show();
	}
	return 0;
}

踩坑日记

对象数组的初始化

  • 分两种情况
    1. 第一种,只有一个参数,直接简单的声明就行。
    2. 第二种,有多个参数,需要把多个参数包装到一起送给类。
  • 要观察好类是否有初始化(默认值)。

对象数组:数组中每个元素为一个对象。

在建立数组时,可以在定义数组时提供实参以实现初始化。

1、如果构造函数只有一个参数,可以直接在等号后面的花括号内提供实参,如:

      Student stu【3】={10,20,30};

2、如果构造函数有多个参数,在定义时在花括号中分别写出构造函数名并在括号内指定实参。如下:构造函数有3个参数,分别代表学号,年龄,成绩,在定义时可以:

       Student stu【3】={
                                         Student(1001,18,80),

                                         Student(1001,18,80),

                                         Student(1001,18,80),

                                    };

————————————————
版权声明:本文为CSDN博主「ukston_C」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ukston_C/article/details/80202768

构造函数

  • 构造函数调用一次就行,如果没有更改数据的接口那就重新申请新的对象数组。