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、如果构造函数只有一个参数,可以直接在等号后面的花括号内提供实参,如:
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
构造函数
- 构造函数调用一次就行,如果没有更改数据的接口那就重新申请新的对象数组。