【发布时间】:2021-03-18 14:29:02
【问题描述】:
这是我的代码的想法
#include <array>
class B;
class A{
private :
const size_t length;
//3 dimensionnal array called Grid3D (see below)
public :
A(size_t length)
: length(length), Grid3D( std::array<std::array< *B , length>,length>,length>)
{}
//...
};
我真的不知道我应该怎么做,我一直有错误invalid use of non-static data member 'A::length'。长度不应该被修改,Grid3D 必须是一个数组,因为它的长度不应该被修改。
非常感谢您的帮助。
【问题讨论】:
-
对于
std::array,长度必须是编译时已知的 constexpr。对于动态(在运行时)计算的长度,您应该使用std::vector。 -
虽然您报告的错误不是来自您发布的代码,但它还有其他错误:godbolt.org/z/PrPvrG
标签: c++ oop multidimensional-array attributes initialization