gpt4 book ai didi

c++ - 如何在构造函数中初始化 const 大小数组而不在类声明中明确说明大小?

转载 作者:行者123 更新时间:2023-11-30 03:33:02 26 4
gpt4 key购买 nike

我需要做类似的事情

class foo {
foo();
int a[];
}

进一步在cpp文件中:

foo::foo() : a{1,2,3,4} {}

特点:

  1. C++98标准

  2. array 不是 int,初始化列表要长得多。虽然它的值在编译时是已知的,但它们会不时改变

编辑:当 new[] 用于内存分配时,另一种选择也是合适的,但是,同样,明确声明数组大小是不可取的:

class foo {
foo();
int * a;
}

进一步在cpp文件中:

foo::foo() {
a = new[]; // impossible
// filling the array with values
}

最佳答案

你不能那样做:数组的大小是数组类型的一部分,因此也是类的一部分。构造函数也是类的一部分。类需要先存在,才能调用构造函数,因此构造函数调用不会影响类定义。

关于c++ - 如何在构造函数中初始化 const 大小数组而不在类声明中明确说明大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43254145/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com