c++ - 在 C++ 类中定义一个 int 数组

标签 c++ arrays class

有没有办法动态地(我认为这是正确的术语)在类中定义一个 int 数组,其大小是同一类中的私有(private)成员变量?例如:

class Scene()
{
    //public member functions

    private:

        int max;
        int xcoords[max];
 }

我在这里搜索了其他已回答的问题,但我还没有学会如何在类里面使用 vector ,这是大多数回复所建议的。理想情况下,在类的构造函数中,我将传递一个 int max,然后用它初始化 xcoord 数组,使其大小为 max,条目均为 -1。

最佳答案

如果您希望动态调整成员(member)数据的大小,您几乎肯定必须将其存储在堆中。也就是说,像这样

class Foo{
  int* data;
public:
  Foo(int size){
    data = new int[size];
  }
  ~Foo(){
    // remember to clean up
    delete[] data;
  }
}

这样,您的构造函数将在创建类时在堆内存中为 size int 分配大小,并在删除时释放它。


比较官方的c++构造函数的写法是:

  Foo(int size):
    data(new int[size])
  {
  }

但最终它会做同样的事情。

关于c++ - 在 C++ 类中定义一个 int 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35281873/

相关文章:

python - numpy数组的可变大小

class - 我们在Delphi中创建的每个类都需要有析构函数吗?

javascript - es6 类可以具有公共(public)属性和功能吗?

c++ - 如何以这种特定格式显示结果?

c++ - 先发生什么 - 堆栈展开或返回值的复制

javascript - 无法通过在 javascript 中识别对象的父 ID 将对象插入父数组

PHP:超过 30 秒的最大执行时间

C++:获取 std::vector 的开头地址?

javascript - 类和原型(prototype)。新手如何解读它们

arrays - OCaml:动态数组?