首页 > 解决方案 > 将没有指定大小的对象数组声明为类字段

问题描述

该字段必须是不可变的,所以我不能使用向量。有没有办法像标题中那样做?

我想做这样的事情:

typedef list<pair<int,string>> list_pair;
class tree{
  private:
     list_pair arr[]{
  public:
    tree(int size){
      arr[size];
    }
}

标签: c++arrays

解决方案


有没有办法像标题中那样做?

不。

非静态成员数组必须具有已知大小,在 C++ 中没有办法解决。

该字段必须是不可变的,所以我不能使用向量。

您的非常量示例数组也不是不可变的。

此外,我看不出这有什么重要的原因。它是一个私有成员,因此很容易选择不改变它。这样,类从外部有效地保持不变。结论:使用std::vector.


推荐阅读