我需要做类似
的事情class foo {
foo();
int a[];
}
进一步在cpp-file中:
foo::foo() : a{1,2,3,4} {}
特殊性:
C ++ 98标准
数组不是int,初始化列表要长得多。虽然它的值在编译时是已知的,但它们可以不时地改变
编辑:当new[]
用于内存分配时,另一个选项也是合适的,但同样,不希望明确说明数组大小:
class foo {
foo();
int * a;
}
进一步在cpp-file中:
foo::foo() {
a = new[]; // impossible
// filling the array with values
}
答案 0 :(得分:2)
你不能这样做:数组的大小是数组的类型的一部分,因此也是类的一部分。构造函数也是类的一部分。该类需要先存在 之前才能调用构造函数,因此构造函数调用不能影响类定义。