在一个.cpp文件中,我声明并实现了一个类“顶点”。然后我声明并实现了二等"ThreeDimensionObject“。在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;
};发布于 2013-09-18 05:23:39
“vertex_matrix”的定义应该是
std::vector<std::vector<Vertex> > vertex_matrix;您的代码使用c++11标志进行编译,但如果没有c++11标志,则需要额外的空间。
发布于 2013-09-18 05:14:42
当编译为依佩恩时,代码在c++11上编译得很好。在没有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;https://stackoverflow.com/questions/18864211
复制相似问题