如何创建用于存储和返回浮点数数组的结构
How do I create a struct for storing and returning an array of floats?
我想创建一个结构来保存方形纹理的纹理坐标。该结构应该只有一个静态成员,它是一个由 8 个浮点数组成的常量数组,并且只有一个返回数组的函数。
我试过这个:
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:
从右到左读取指针声明。
const X* p 表示"p 指向一个常量 X":X 对象不能 通过 p 更改。
X* const p 表示"p 是指向 X 的常量指针,该指针位于 是非常量":你不能改变指针 p 本身,但你可以 通过 p 更改 X 对象。
const X* const p 表示"p is a const 指向 X 的指针是 const":你不能改变指针 p 本身, 您也不能通过 p 更改 X 对象。
您需要返回const GLfloat*
.由于该方法不属于特定对象,因此它可以是静态的。
static const GLfloat* gettexcoords() { return m_texturecoords; }
演示:http://ideone.com/6f1enU。
相关文章:
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- C++浮点数据类型和字符串数据类型无法子到模板函数中
- 使用提升将数据从 PyObject 复制到浮点数 *
- 使用浮点数和双精度数的非常小数字的数学
- 返回浮点数的小数位数
- 从函数c++返回浮点数组
- atof() 返回浮点数而不是双精度
- 为什么我的函数不返回浮点数?
- 如何创建用于存储和返回浮点数数组的结构
- 为什么我的函数返回一个整数,尽管我已经将答案指定为浮点数
- 为什么 boost::geometry::d istance 使用 model::d 2::p oint_xy<float> 返回双精度而不是浮点数?
- 如何保存返回的浮点数组指针
- 从函数返回浮点数组
- 如何模板化函数以返回浮点数、整数或结构的向量
- 平调用返回浮点数
- 当浮点数小于1时,函数返回0
- 将c++中的浮点数数组返回给Python
- c++在函数返回中截断浮点数
- 返回c++中的浮点数数组