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

⌚Time: 2022-09-12 23:28:37

👨‍💻Author: Jack Ge

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


char chstr[256]={1,2,3,0};//赋值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 <iostream>

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