Использование new
означает, что вы должны запомнить delete []
это; использование зависимых от компилятора массивов переменного размера означает, что вы теряете переносимость.
Гораздо лучше использовать вектор .
#include <vector>
class Graphic
{
std::vector<int> array;
Graphic( int size )
{
array.resize(size);
glGenTextures( size, &array[0] );
}
}
Язык гарантирует, что векторные элементы будут смежными в памяти, поэтому здесь можно безопасно &array[0]
.