我有一个类,其中它是受保护的部分我需要声明一个未知大小的数组(大小作为参数给予构造函数),所以我环顾四周,发现出,最好的可能的解决方案是声明指针数组,每个元件指向整数:指针数组和指针指向一个数组在C++
int* some_array_;
和简单地在构造我将使用“新”的操作符:
some_array_ = new int[size];
它的工作原理,我的问题是:我可以在没有定义si的情况下在类中声明一个数组泽?如果是的话,我该怎么做,如果没有,那么为什么它的指针而不是一个正常的数组?
编辑:我知道vecotrs会解决这个问题,但我不能在我的HW
你可能不想保护数据 - 它几乎总是一个坏主意。并使用std :: vector,而不是一个显式动态分配的数组。 –
有两种定义数组的方法... 1.在编译int Name [10]时定义的大小,然后在堆栈中...您不需要delete命令,因为它会自动删除当你走出这个空间时。 2.一个动态数组int * Name = new int [n],然后它在堆上。所以它会一直持续到你说delete []名称 – Thomas
'some_array_'不是一个指针数组,它是一个指向数组第一个元素的指针。一个指针数组是'int * x [size]';一个指向数组'int(* x)[size]'的指针。 – molbdnilo