next up previous contents
Next: The Complex_POLY Class: Up: The Definitions: Previous: The Child Complex_POLY_CELL Class:

The Complex_POLY_CORE Class:

The polynomial is now designed. The core class is pure virtual and note the merge sort methods have been moved to the polynomial class from the cell class.

class Complex_POLY_CORE{
    friend class Complex_CELL_CORE;
    friend istream& operator>>(istream& in,Complex_POLY_CORE& A)
      {A.grab(in); return(in);};
    friend istream& operator>>(istream& in,Complex_POLY_CORE* A)
      {A->grab(in); return(in);};
    friend ostream& operator<<(ostream& out,const Complex_POLY_CORE& A)
      {A.print(out); return(out);};
    friend ostream& operator<<(ostream& out,const Complex_POLY_CORE* A)
      {A->print(out); return(out);};
  public:
    virtual ~Complex_POLY_CORE(){};
    virtual int is_empty() = 0;
    virtual void delete_power(unsigned int p) = 0;
    virtual void search_power(unsigned int p) = 0;
    virtual void build_list(Complex_VECTOR A) = 0;
    virtual unsigned int get_degree() = 0;
    virtual int insert(Complex new_element,unsigned int q) = 0;
    virtual Complex_POLY_CELL* split(Complex_POLY_CELL *A) = 0;
    virtual Complex_POLY_CELL* merge(Complex_POLY_CELL *A1,
                                   Complex_POLY_CELL *A2) = 0;
    virtual Complex_POLY_CELL* mergesort(Complex_POLY_CELL *A) = 0;
    virtual void mergesort() = 0;
    virtual istream& grab(istream& in) = 0;
    virtual ostream& print(ostream& out) const = 0;   
  };



Jim Peterson
1999-04-22