我正在使用OpenGL编写新类,对于构造函数我有两种可能性:
VertexObject();
VertexObject(GLuint* vertices,GLuint* elements);
我想做的是VertexObject()调用另一个已经初始化的数组,例如
VertexObject::VertexObject() :
VertexObject(
(GLuint[]) {
0, 1, 2,
2, 3, 0
},
(GLuint[]) {
0, 1, 2,
2, 3, 0
}) {}
但是似乎C ++不允许我这样做,错误是“获取临时数组的地址”。我什至不确定我要的是可行的,但是任何帮助将不胜感激。
如果您在构造函数中深度复制该数组,或者从未修改过该数组并且VertexObject
不获取指针的所有权,那么这应该可以工作:
GLuint def_vert[6] = { // static storage
0, 1, 2,
2, 3, 0
};
VertexObject::VertexObject() :
VertexObject(def_vert, def_vert) {}
当然,如果每个参数都需要不同的值,则可以使用单独的数组。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句