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
構造函數
- 構造函數調用一次就行,如果沒有更改數據的接口那就重新申請新的對象數組。