1

構築時に初期化する必要がある const メンバーを含むクラスの配列を初期化したいと考えています。

#include <iostream>
class A
{
    private:
        const int var_;

    public:
        A(const int var) : var_(var){};

        int getVar(){return var_;}
};

class B
{
    private:
        A tab[2];

    public:
        B() : tab{2,5} {}; // The trick should be here, I think !

        int getA(int index) { return tab[index].getVar();}
};

int main(void)
{

    B b; // constraint : Dynamic allocation not allowed
    std::cout << b.getA(0) << std::endl;

    return 0;
}

クラス B のコンストラクターが正しくないため、このコードはコンパイルされません。助けてくれてありがとう、ニコラス

4

1 に答える 1

0

コマンド

g++ -std=c++11 1.cpp

上記のコードをうまくコンパイルします。コンソールで1.exe印刷を実行します。2

PS: g++.EXE (GCC) 4.9.0 20130616 (実験的)

于 2013-07-11T12:18:24.507 に答える