【发布时间】:2011-10-12 03:19:06
【问题描述】:
我在尝试为班级编写的方法时遇到了一些问题。我有班级符号和班级终端。类终端扩展类符号,但类符号的方法之一需要返回一个向量。例如:
#ifndef SYMBOL_H
#define SYMBOL_H
#include "terminal.h"
#include <vector>
using namespace std;
class symbol {
public:
vector<terminal> first();
virtual void polymorphable();
};
#endif
定义了类终端:
#ifndef TERMINAL_H
#define TERMINAL_H
#include "symbol.h"
using namespace std;
class terminal: public symbol {
// ...
};
#endif
但是,这样做时,我在构建时遇到两个错误,其中一个首先出现:定义向量函数的行上的“'terminal':未声明的标识符”,以及“'symbol':未定义的基类" 与终端类定义一致。
如何解决“a 需要 b”、“b 需要 a”的问题?
【问题讨论】:
标签: c++ stl polymorphism