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 回答