【发布时间】:2017-05-20 01:03:45
【问题描述】:
我正在尝试实现多态性,如下面的代码所示。我想要类型类表达式的表达式向量。这些表达式将具有 Parameter 类类型的左右参数对象。正如可能已经猜到的那样,这可能会递归,直到遇到字符串“a_string”或“an_id”。但是,编译器首先并不知道向量的“表达式”类型。需要任何帮助。谢谢。
#ifndef PARAMETER_H
#define PARAMETER_H
#include <string>
#include <vector>
using namespace std;
class Parameter
{
private:
string a_string;
string an_id;
vector<Expression> expressions;
public:
Parameter(bool expr_stringID);
};
class Expression : public Parameter
{
private:
Parameter left_parameter;
Parameter right_parameter;
char op;
public:
};
#endif
【问题讨论】:
-
您应该可以将
class Expression;放在您的class Parameter行上方 -
@TheDark 是的,前向声明是这里的最低要求。不太确定这个骗局。
标签: c++ polymorphism