From 85d4a64c9c405995f8bda11476462c4c5b61057c Mon Sep 17 00:00:00 2001 From: Kolan Sh Date: Sun, 28 Mar 2021 23:42:20 +0300 Subject: [PATCH] LW6: Abstract Class BaseBookItem with virtual to_string() method. --- phoebook/CBookItems.cpp | 9 +++++++++ phoebook/CBookItems.h | 2 ++ phoebook/CConsoleUI.cpp | 8 +------- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/phoebook/CBookItems.cpp b/phoebook/CBookItems.cpp index f75f076..7b02faf 100644 --- a/phoebook/CBookItems.cpp +++ b/phoebook/CBookItems.cpp @@ -322,4 +322,13 @@ std::istream& operator>>(std::istream& s, CBookItems::BookItem& item) { s >> item._sFirstName >> item._sLastName >> item._sPhoneNumber1 >> item._sPhoneNumber2; return s; +} + +const string CBookItems::BookItem::to_string() const +{ + string str = _sFirstName + " " + _sLastName + ": " + _sPhoneNumber1; + + if (_sPhoneNumber2 != "") + str += ", " + _sPhoneNumber2; + return str; } \ No newline at end of file diff --git a/phoebook/CBookItems.h b/phoebook/CBookItems.h index cf4ba20..84ba0c6 100644 --- a/phoebook/CBookItems.h +++ b/phoebook/CBookItems.h @@ -35,6 +35,7 @@ public: virtual ~BaseBookItem() { } + virtual const string to_string() const = 0; }; class BookItem : BaseBookItem @@ -54,6 +55,7 @@ public: friend std::istream& operator>>(std::istream& s, BookItem& item); friend CBookItems; + const string to_string() const; }; vector _aItems; diff --git a/phoebook/CConsoleUI.cpp b/phoebook/CConsoleUI.cpp index 1f4e7bd..ae90c20 100644 --- a/phoebook/CConsoleUI.cpp +++ b/phoebook/CConsoleUI.cpp @@ -86,13 +86,7 @@ void CConsoleUI::FindItem(CBookItems& CPhoneBook) for (int i = 0; i < nNumOfDesirvedItems.size(); i++) { - string sFName = " "; - string sLName = " "; - string sNum1 = " "; - string sNum2 = " "; - - CPhoneBook.GetItem(nNumOfDesirvedItems.at(i), sFName, sLName, sNum1, sNum2); - cout << 1 + i << ". " << sFName << " " << sLName << ": " << sNum1 << ", " << sNum2 << endl; + cout << 1 + i << ". " << CPhoneBook.GetItem(nNumOfDesirvedItems.at(i)).to_string() << endl; } }