首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我不能在我的类中声明这个对象呢?

为什么我不能在我的类中声明这个对象呢?
EN

Stack Overflow用户
提问于 2012-11-13 05:05:46
回答 1查看 86关注 0票数 1

当我这样做的时候,我的编译器会抱怨。出现了3个错误,但看不到错误消息:

代码语言:javascript
复制
#include <stdlib.h>
#include <vector>
#include <string>
#include "ParseException.h"
#include "CycleFoundException.h"
#include "UnknownTargetException.h"

using namespace std;

class Maker
{
 private:
 vector<Node> storage;

 public:
 Maker(string file) throw (ParseException, CycleFoundException, UnknownTargetException);
 vector<string> makeTarget(string targetName);      
};

struct Node
{
    string target;
    vector<string> dependencies;
    string command;
    int discoverytime;
    int finishtime;
    int visited;
    Node* next;
};

编译器不喜欢我的vector<Node> storage声明。当我改为使用vector<int> storage时,它编译起来没有任何问题。在另一个类中声明一个类的对象是错误的吗?我还以为这没问题呢。

EN

回答 1

Stack Overflow用户

发布于 2012-11-13 05:08:07

看起来你需要把Node的定义放在Maker的定义之前。

您在Maker的定义中使用了类型名称Node (在vector<Node> storage行中),但是因为您还没有定义Node,所以编译器还不知道它是什么。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13351556

复制
相关文章

相似问题

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