This question is best described in code. I have a class called Vertex that contains an instance of a class called Params:
class Params {
virtual Params operator + (Params const& p) = 0;
};
class Vertex {
public:
Params operator + (Params const& ap) const {
return p + ap
};
virtual float eval() = 0;
private:
Params const p;
};
I also have a class called EllParams which is derived from Params and EllVertex which is derived from Vertex. What I'm wondering is how to deal with the private member variable p in Vertex in EllVertex: I want it to be of type EllParams. Is there some way of making p virtual/overriding it? Or should I look to templates for a solution?