【发布时间】:2016-05-24 21:16:23
【问题描述】:
如何将以下类转换为定长浮点数组?
class Vertex
{
public:
Vertex( float x = 0,
float y = 0,
float z = 0)
: x(x), y(y), z(z) {}
float x, y, z;
};
例如,我想这样使用它:
Vertex v(0, 1, 0);
float arr[3] = v; // How to convert here?
谢谢!
编辑:
我应该在发布这个问题之前添加一些背景信息。
我使用 C 风格数组的原因是因为我想将高级顶点对象组合成一个 顶点数组 以使用 OpenGL 进行渲染,据我所知需要一个集合原始数组 (float[3]) 或结构。
为此,我认为user2079303's answer 是最佳选择。但是,如果存在更优雅的解决方案,那就更好了。 :)
【问题讨论】:
-
您是否尝试过添加转换运算符? en.cppreference.com/w/cpp/language/cast_operator
-
@Alex 我不同意这个骗局。它没有解释如何初始化一个数组类型。
-
你必须有一个原始数组还是可以使用
std::array? -
@NathanOliver 我没有在问题中提到这一点。现在添加了一些背景信息...
标签: c++