#ifndef CalcFace_SEEN #define CalcFace_SEEN /////// File CalcFace.h /////// #include #include // function input: returns op in c and input number if any // return value == OPONLY means only op is entered // return value == OFF means no more input class CalcFace { public: CalcFace( const int digs, // calculator precision const char* k // operation keys recognized ); virtual int input(char& c, double& number, int err); virtual void show_number(double number); virtual void show_error() { cerr << "Error" << endl; } virtual void show_op(char op) { } virtual int err_input(char& op); enum {OPONLY = 1, OFF}; ~CalcFace() { delete nbuf; } protected: virtual int inchar() { return(cin.get()); } virtual void extract_number(double&); virtual void build_number(char c, int& i); int nump(char c); char* nbuf; // buffer[prec+2] for input number const char* keys; // keys const int prec; // precision }; #endif