olexander_dan

Untitled

Apr 9th, 2019
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.13 KB | None | 0 0
  1. //LABKA 2-4 v.1 Class
  2. #pragma once
  3.  
  4. class Polynom {
  5. private:
  6.     struct Monom {
  7.         double coef{ 0 };
  8.         double pow{ 0 };
  9.         Monom* next;
  10.     };
  11.     Monom* first{ nullptr };
  12. public:
  13.     Polynom() = default;
  14.     Polynom(const Polynom&);
  15.     Polynom(Polynom&&);
  16.     Polynom& operator = (const Polynom&);
  17.     Polynom& operator = (Polynom&&);
  18.     Polynom& operator + (const Polynom&) const;
  19.     Polynom& operator - (const Polynom&) const;
  20.     Polynom& operator += (const Polynom&) const;
  21.     ~Polynom();
  22.  
  23.     void in(std::istream&, std::string inputStreamType);
  24.     void out(std::ostream&, std::string outputStreamType) const;
  25.  
  26.     void push(const Monom&);
  27.     bool pop(Monom&);
  28.     void dispose();
  29.  
  30.     class Iter {
  31.     public:
  32.         Iter() = default;
  33.         Iter(Monom*);
  34.         Monom& operator*();
  35.         Iter& operator ++ (); // ++i
  36.         Iter& operator ++ (int); // i++
  37.         bool operator == (const Iter&);
  38.         bool operator != (const Iter&);
  39.     private:
  40.         Monom* current{ nullptr };
  41.     };
  42.     Iter begin() const;
  43.     Iter end() const;
  44. };
  45.  
  46. void operator >>(std::istream& s, Polynom& p);
  47. void operator <<(std::ostream& s, const Polynom& p);
  48.  
  49. void close(std::istream& s);
  50. void close(std::ostream& s);
Add Comment
Please, Sign In to add comment