我正在尝试学习C ++和OpenGL ...
我想返回数组的第一个指针...但是保持常量正确性...
碰巧的是:
class Foo{
private:
GLubyte array[64][64][4];
public:
const GLubyte& get_array(){return array;}
}
给我这个编译器错误:
:28: error: invalid initialization of reference of type 'const GLubyte&' from expression of type 'GLubyte (*)[64][4]'
您能帮助我理解如何返回const正确性的第一指针吗?
最佳答案
它与const
的正确性无关。如果您想要第一个指针...那么,您需要返回一个指针:
const GLubyte* get_array(){return (GLubyte*)array;}
强制转换有效,因为数组在内存中连续表示。
但是我很确定可以使用
std::vector
而不是C样式的数组为您要实现的目标提供更好的解决方案。您到底想做什么?