首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在此范围内未声明std::vector<std::vector<Vertex>> vertex_matrix;

在此范围内未声明std::vector<std::vector<Vertex>> vertex_matrix;
EN

Stack Overflow用户
提问于 2013-09-18 05:02:28
回答 2查看 1.6K关注 0票数 0

在一个.cpp文件中,我声明并实现了一个类“顶点”。然后我声明并实现了二等"ThreeDimensionObject“。在ThreeDimensionObject内部,它有一个公共成员std::vector> vertex_matrix;

我确实进口了。该项目在xCode IDE上运行良好,g++提示我“错误:‘vertex_matrix’没有在此范围内声明”。

我怎么才能修好它?

代码语言:javascript
复制
#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;
};
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-18 05:23:39

“vertex_matrix”的定义应该是

代码语言:javascript
复制
std::vector<std::vector<Vertex> > vertex_matrix;

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

票数 1
EN

Stack Overflow用户

发布于 2013-09-18 05:14:42

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

代码语言:javascript
复制
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++命令行),也可以添加所需的空间。

代码语言:javascript
复制
    std::vector<std::vector<Vertex> > vertex_matrix;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18864211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档