gpt4 book ai didi

c++ - 如何创建用于存储和返回 float 组的结构?

转载 作者:搜寻专家 更新时间:2023-10-31 01:25:16 25 4
gpt4 key购买 nike

我想创建一个结构来保存方形纹理的纹理坐标。该结构应该只有一个静态成员,它是一个由 8 个 float 组成的常量数组,并且只有一个返回该数组的函数。

我试过这个:

struct TextureCoordinates
{
static constexpr GLfloat m_texturecoords[8] = {
1.0f, 0.0f,
1.0f, 1.0f,
0.0f, 1.0f,
0.0f, 0.0f,
};

GLfloat* const gettexcoords() { return &m_texturecoords; }
};

但我收到一条错误消息,指出返回类型与函数类型不匹配。我如何更改此结构以使其以内存高效的方式工作?

最佳答案

GLfloat* const 表示 GLfloat 指针是 const,即指针不是它指向的值是 const。来自 https://isocpp.org/wiki/faq/const-correctness#const-ptr-vs-ptr-const :

Read the pointer declarations right-to-left.

const X* p means “p points to an X that is const”: the X object can’t be changed via p.

X* const p means “p is a const pointer to an X that is non-const”: you can’t change the pointer p itself, but you can change the X object via p.

const X* const p means “p is a const pointer to an X that is const”: you can’t change the pointer p itself, nor can you change the X object via p.

您需要返回const GLfloat*。由于该方法不属于特定对象,因此它可以是静态的。

static const GLfloat* gettexcoords() { return m_texturecoords; }

演示:http://ideone.com/6f1enU .

关于c++ - 如何创建用于存储和返回 float 组的结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57127041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com