I want to create objects to represent a mathematical expression. This is a tree of expressions of different types, each one being an operator with sub-expressions. Simple enough, right? So I start with
Code:
class Expression {
public:
Expression *exp_parent;
Expression *sub_exp[MAX_SUBEXP];
Expression (Expression * parent);
virtual ~Expression ();
virtual int OpTerm () = 0;
virtual void OpResult (float &, float *) = 0;
virtual Expression * Copy (Expression *);
void Eval (float &);
};
Code:
Expression::Expression (
Expression *parent)
{
exp_parent = parent;
}
Code:
Expression::~Expression ()
{
int i, n;
n = OpTerm ();
for (i = 0; i < n; i++)
delete sub_exp[i];
}
Code:
exp.cpp(250): warning #705: call of pure virtual function
n = OpTerm ();
^

