的std ::矢量<性病::矢量<顶点>&GT; vertex_matrix;未在此范围中声明</std :: vector <vertex>

时间:2013-09-18 05:02:28

标签: c++ vector g++ std

在一个.cpp文件中,我声明并实现了一个“Vertex”类。然后我声明并实现第二个类“ThreeDimensionObject”。在ThreeDimensionObject里面 ,它有一个公共成员std :: vector&gt; 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;
};

2 个答案:

答案 0 :(得分:2)

编译为IDEONE时,代码在上编译正常。在没有C ++。11标志的情况下编译时,代码会发出以下错误:

prog.cpp:12:35: error: ‘>>’ should be ‘> >’ within a nested template argument list
     std::vector<std::vector<Vertex>> vertex_matrix;

此错误可能发生在错误列表的顶部附近,您可能没有看到它。您可以将代码编译为C ++ 11(通过将-std=gnu++11-std=c++11添加到g++命令行),或者您可以添加所需的空间。

    std::vector<std::vector<Vertex> > vertex_matrix;

答案 1 :(得分:1)

'顶点矩阵'的定义应为

std::vector<std::vector<Vertex> > vertex_matrix;

您的代码使用c ++ 11标志编译,但没有c ++ 11标记它需要额外的空间。