#ifndef SOLVER_H #define SOLVER_H SOLVER_H class Solver { public: typedef struct { int numResults; double results[4]; } Result; Solver(double a = 0.0, double b = 0.0, double c = 0.0, double d = 0.0, double e = 0.0); virtual Result solve() = 0; protected: double a, b, c, d, e; }; class QuadraticSolver : public Solver { public: QuadraticSolver(double a, double b, double c); Result solve(); }; class CubicSolver : public Solver { public: CubicSolver(double a, double b, double c, double d); Result solve(); }; class QuarticSolver : public Solver { public: QuarticSolver(double a, double b, double c, double d, double e); Result solve(); }; #endif