带有C ++中const成员的类数组

时间:2013-07-11 12:12:56

标签: c++

我想初始化一个包含const成员的类数组,该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类的构造函数不正确。 谢谢你的帮助, 尼古拉斯

1 个答案:

答案 0 :(得分:0)

命令

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

编译上面的代码就好了。在控制台中运行1.exe打印2

P.S:g ++。EXE(GCC)4.9.0 20130616(实验性)