C++:类中具有自定义大小的数组

2 c++ arrays opengl class

我想做这个:

class Graphic
{
    int *array;
    Graphic( int size )
    {
        int temp_array[size];
        array = temp_array;
        glGenTextures( size, array );
    }
}
Run Code Online (Sandbox Code Playgroud)

这会有用吗?即使它会,还有更好的方法吗?

谢谢.

j_r*_*ker 8

使用new手段你必须记住delete []它; 使用编译器相关的可变大小数组意味着您失去了可移植性.

使用矢量要好得多.

#include <vector>

class Graphic
{
    std::vector<int> array;
    Graphic( int size )
    {
        array.resize(size);
        glGenTextures( size, &array[0] );
    }
}
Run Code Online (Sandbox Code Playgroud)

该语言保证向量元素在内存中是连续的,因此&array[0]在这里安全.