C++數群組成員的初始化

來源:互聯網
上載者:User

C++裡如果將數組定義成類中的成員,將面臨初始化的問題.

 

如下:

 

Class A

{

public:

    A();

    ~A(){};

 

    int abc[3];

}

 

很直觀的想法是

 

A::A()

: abc({1,2,3})

{

 

}

 

很遺憾,你將見到編譯提示法錯誤

 

當然這裡可以採用變通方法

 

A::A()

{

    for( int nLoop=1;nLoop<=3;nLoop++)

         abc[nLoop]=nLoop;

}

但假如需要初始化的是沒有預設構造的對象數組又如何呢?例如class B{public:    B(int a);    ~B(){};    int m_nB;}B::B(int a): m_nB(a){}

Class A

{

public:

    A();

    ~A(){};

 

    B    abc[3];

}

 這時該如何初始化呢?這裡只能用變通的方法解決.

Class A

{

public:

    A();

    ~A(){};

 

    B    *abc[3];

}

A::A(){    abc[0] = new B(1);    abc[1] = new B(2);    abc[2] = new B(3);}當然也許是我太孤陋寡聞了,如果大家誰知道成員數組的初始化文法,懇請告知哦.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.