0

在一个 .cpp 文件中,我声明并实现了一个“顶点”类。然后我声明并实现第二类“三维对象”。在 ThreeDimensionObject 内部,它有一个公共成员 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;
};
4

2 回答 2

2

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

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

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

    std::vector<std::vector<Vertex> > vertex_matrix;
于 2013-09-18T05:14:42.757 回答
1

'vertex_matrix' 的定义应该是,

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

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

于 2013-09-18T05:23:39.753 回答