我想初始化一个包含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类的构造函数不正确。 谢谢你的帮助, 尼古拉斯
答案 0 :(得分:0)
命令
g++ -std=c++11 1.cpp
编译上面的代码就好了。在控制台中运行1.exe
打印2
。
P.S:g ++。EXE(GCC)4.9.0 20130616(实验性)