Skip to content

Latest commit

 

History

History
43 lines (34 loc) · 1.03 KB

14.5.md

File metadata and controls

43 lines (34 loc) · 1.03 KB

(a) Book

class Book {
public:
  Book() : isbn(""), name(""), author(),
      publish_year(0), publisher(""), version(0) {}
  Book(const std::string &i, const std::string &n,
       const std::vector<std::string> &au,
       unsigned y, const std::string &p = "", unsigned v = 1)
      : isbn(i), name(n), author(au),
        publish_year(y), publisher(p), version(v) {}
  Book(std::istream &is) {
    is >> isbn >> name;
    std::string s;
    is >> s;
    author.push_back(s);
    is >> publish_year >> publisher >> version;
  }

private:
  std::string isbn;
  std::string name;
  std::vector<std::string> author;
  unsigned publish_year;
  std::string publisher;
  unsigned version;
};

bool operator==(const Book &, const Book &);
bool operator!=(const Book &, const Book &);
std::ostream &operator<<(std::ostream &, const Book &);
std::istream &operator>>(std::istream &, Book &);

(b) Date

(c) Employee

(d) Vehicle

(e) Object

(f) Tree