我正在尝试学习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样式的数组为您要实现的目标提供更好的解决方案。您到底想做什么?

07-24 14:13