我是C ++的新手,在这里我遇到了一个愚蠢的问题。
utility.h:
#ifndef UTILITY_H_
#define UTILITY_H_
using namespace std;
#include <iostream>
enum Error_code {success, fail, range_error, underflow, overflow, fatal,
not_present, duplicate_error, entry_inserted, entry_found,
internal_error};
#endif /* UTILITY_H_ */
Stack.h:
#ifndef STACK_H_
#define STACK_H_
#include "utility.h"
typedef double Stack_entry;
class Stack {
public:
Stack();
~Stack();
bool empty();
Error_code push(const Stack_entry &item);
#endif /* STACK_H_ */
这两个头文件是我项目中唯一的文件,它们位于同一个文件夹中。但是,Stack.h中的Error_code始终报告为“无法解析类型”。顺便说一句,我在Mac Os X上使用Eclipse,而且我安装了CDT。
是否有人对此错误有所了解或者是否遇到此问题?谢谢!
很抱歉,我忘了粘贴Node的头文件,但是它与Error_code有同样的问题。现在我删除了那部分。这是错误信息(对不起,我不允许发布图片):
描述:无法解析类型'Error_code'
资源:Stack.h
路径:/ StackImplementation / header
地点:21号线
类型:语义错误
另外我忘了提到这两个文件可以用g ++命令编译,但Eclipse总是报告类型错误。
Wierd ......不知怎的,我重新创建了项目,错误消失了。感谢所有人!
答案 0 :(得分:1)
声明Node
类型在哪里?
protected:
Node *top_node;
答案 1 :(得分:0)
Nit~“Node”在这个链中没有定义?根据您的工具,这可能会混淆您的答案。其他一切似乎都很好。甚至抄出.cc来测试它〜
#include "stack.h"
bool Stack::empty() {
return true;
}
Error_code Stack::push(const Stack_entry &item) {
return success;
}
除了Node没有被定义之外,你的.cc可能会看到错误吗?