【发布时间】:2013-09-18 05:02:28
【问题描述】:
在一个 .cpp 文件中,我声明并实现了一个“顶点”类。然后我声明并实现第二类“三维对象”。三维对象内部 ,它有一个公共成员 std::vector> vertex_matrix;
我确实导入了 .该项目在 xCode IDE 上运行良好,g++ 提示我“错误:'vertex_matrix' 未在此范围内声明”。
我该如何解决?
#include <vector>
class Vertex : public std::vector<float>
{
//implementation
};
class ThreeDimensionObject
{
//the center position
public:
//num_stack * num_stack * 4
std::vector<std::vector<Vertex>> vertex_matrix;
};
【问题讨论】:
-
作为一个不相关的旁注,
std::vector是在 3 空间中表示顶点的一种非常糟糕的方式,因为它使用动态分配的内存块来存储 3 或 4 个浮点数(并且该块占用的额外开销与这 4 个浮点本身一样多,不要忘记std::vector的自动存储本身,它也与实际顶点数据本身一样大)。如果你真的想要一个标准的顶点库容器,那么至少满足于std::array。