c++数组、结构体数组和对象数组的初始化方式

c++数组、结构体数组和对象数组的初始化方式,第1张

c++对于普通变量数组,通过大括号包含的值,对每个数组元素进行初始化

char chstr[256]={1230};//赋值1,2,3,第三个元素之后全部赋值为0

对于结构体数组,初始化方式

struct SASA{
	int m_a;
	int m_b;
};
struct SASA saArray[3] = {{11,22},{33,44},{55,77}};

对于对象数组,对象在创建时需要调用它的构造函数,如果类中没有自定义的构造函数,则直接

CACA caArray[3];

会调用默认构造函数进行初始化
如果有自定义的无参构造函数,也是同样的初始化方式

CACA caArray[3];

如果有自定义构造函数并且携带参数,并且没有其它自定义无参构造函数,就使用如下方法初始化

CACA caArray[3] = {CACA(2,3),CACA(4,5),CACA(6,7)};

大括号里面的是类的构造函数,使用它的构造函数并且指定参数,初始化每个数组元素

例子:

#include 
using namespace std;
class CACA{
	public:
	CACA(){}
	CACA(int a,int b){
		m_a = a;
		m_b = b;
	}
	void show(){
		cout<<m_a<<" "<<m_b<<endl;
	}
	private:
	int m_a,m_b;
};
struct SASA{
	int m_a;
	int m_b;
};
int main(){

	int iArray[3] = {8,9,0};
	cout<<iArray[0]<<" "<<iArray[1]<<" "<<iArray[2]<<endl;

	CACA caArray[3] = {CACA(2,3),CACA(4,5),CACA(6,7)};
	caArray[0].show();
	caArray[1].show();
	caArray[2].show();

	struct SASA saArray[3] = {{11,22},{33,44},{55,77}};
	cout<<saArray[0].m_a<<" "<<saArray[0].m_b<<endl;
	cout<<saArray[1].m_a<<" "<<saArray[1].m_b<<endl;
	cout<<saArray[2].m_a<<" "<<saArray[2].m_b<<endl;
	return 0;
}

结果

g++ main.cpp
a.exe
8 9 0
2 3
4 5
6 7
11 22
33 44
55 77

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/2889345.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-09-14
下一篇2022-09-14

发表评论

登录后才能评论

评论列表(0条)

    保存