【发布时间】:2021-12-31 15:03:38
【问题描述】:
我正在尝试通过重载构造函数声明一个在运行时/编译时调整大小的数组。
private:
auto** arr = new int[n][n];
overloadConstruct(int n){
arr[n][n] = {0,0};
}
这不起作用,它说第二个 n 需要保持不变,并且不允许使用 auto。任何帮助,将不胜感激。我不确定数组的所有规则,尤其是二维数组。我只需要能够在运行时调整二维数组的大小/通过输入进行编译。
【问题讨论】:
-
运行时和编译时是两个不同的阶段。你想选择哪一个? runtime/compile-time 在您的情况下没有意义。请更清楚地询问。
-
auto不允许用于班级成员。数组大小必须在 C++ 编译时知道。 gcc 允许可变数组长度作为扩展,但在此上下文中不允许。考虑改用vector。 -
@digito_evo 运行时是我想要的
-
然后检查我的答案。
-
@digito_evo 谢谢
标签: c++ arrays gcc multidimensional-array adjacency-matrix