【问题标题】:C++ initializing unknown size of 2DimArray in a constructorC++ 在构造函数中初始化未知大小的 2DimArray
【发布时间】:2013-10-20 10:11:26
【问题描述】:

我有问题。我想在类的构造函数中初始化我的 2Dim 数组,它是类的成员。例如。

class Foo
{
    private:

       bool testArray[100][4];

    public:

       Foo( bool t_array[][4]);         
};

在 Foo.cpp 文件中:

Foo::Foo(bool array[][4])
{
   // initilize it in there with unknown row size 
}

我没有具体的行大小,但我知道它最大为 100。

如何在我的构造函数中初始化我的 testArray?提前致谢。

【问题讨论】:

标签: c++ multidimensional-array constructor


【解决方案1】:

由于bool [100][4] 类型的数组在传递给构造函数时将衰减为bool (*) [4] 类型的指针,因此您也应该传递行数。没有其他方法可以让这个构造函数找出这个数组的实际大小。

您也可以考虑改用std::vector< std::array<bool, 4> >

【讨论】:

  • 感谢您的回复。我无权更改函数类型。有没有办法在不更改声明的情况下弄清楚?
  • @Bambi:如果您使用一些值序列来标记数组的结尾,也许这是可能的。然而,这似乎不是一个合理的解决方案。为什么不能更改声明?
  • @Bambi 你被要求做一些不可能的事情,或者你误解了你应该做什么。
猜你喜欢
  • 2014-05-19
  • 1970-01-01
  • 2019-03-30
  • 1970-01-01
  • 2018-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多