diff --git a/phoebook/CBookItems.cpp b/phoebook/CBookItems.cpp index 1f013ac..f75f076 100644 --- a/phoebook/CBookItems.cpp +++ b/phoebook/CBookItems.cpp @@ -8,7 +8,7 @@ void CBookItems::CreateNewItem(string sFirstName, string sLastName, string sPhon void CBookItems::CreateNewItem(string sFirstName, string sLastName, string sPhoneNumber1, string sPhoneNumber2) { - BookItem* spaceItem = new BookItem; + BookItem* spaceItem = new BookItem; spaceItem->_sFirstName = sFirstName; spaceItem->_sLastName = sLastName; spaceItem->_sPhoneNumber1 = sPhoneNumber1; @@ -33,7 +33,7 @@ int CBookItems::SetNewValueToItem(string sFirstName, string sLastName, string sP { if (nNumOfItem == i) { - BookItem spaceItem; + BookItem spaceItem; spaceItem._sFirstName = sFirstName; spaceItem._sLastName = sLastName; spaceItem._sPhoneNumber1 = sPhoneNumber1; @@ -72,9 +72,9 @@ int CBookItems::GetItem(int nNumOfItem, string& sFirstName, string& sLastName, s } } -const CBookItems::BookItem& CBookItems::GetItem(int nNumOfItem) +const CBookItems::BookItem& CBookItems::GetItem(int nNumOfItem) { - if (nNumOfItem < 0 || nNumOfItem > _aItems.size()) return CBookItems::BookItem(); + if (nNumOfItem < 0 || nNumOfItem > _aItems.size()) return CBookItems::BookItem(); return _aItems[nNumOfItem]; } @@ -309,7 +309,7 @@ int CBookItems::LoadItems(string sNameOfFile) } -std::ostream& operator<<(std::ostream& s, const CBookItems::BookItem& item) +std::ostream& operator<<(std::ostream& s, const CBookItems::BookItem& item) { s << item._sFirstName << " " << item._sLastName << ": " << item._sPhoneNumber1; if (item._sPhoneNumber2 != "") @@ -318,7 +318,7 @@ std::ostream& operator<<(std::ostream& s, const CBookItems::BookItem& it return s; } -std::istream& operator>>(std::istream& s, CBookItems::BookItem& item) +std::istream& operator>>(std::istream& s, CBookItems::BookItem& item) { s >> item._sFirstName >> item._sLastName >> item._sPhoneNumber1 >> item._sPhoneNumber2; return s; diff --git a/phoebook/CBookItems.h b/phoebook/CBookItems.h index 3e3d255..cf4ba20 100644 --- a/phoebook/CBookItems.h +++ b/phoebook/CBookItems.h @@ -21,32 +21,42 @@ class CBookItems { public: template - class BookItem + class BaseBookItem { - private: + protected: T _sFirstName; T _sLastName; T _sPhoneNumber1; T _sPhoneNumber2; public: - BookItem() + BaseBookItem() { } - virtual ~BookItem() + virtual ~BaseBookItem() { } + }; - //=============================================================================== - /** - *Переопределяет операторы вывода/вывода - */ - friend std::ostream& operator<<(std::ostream& s, const BookItem& item); - friend std::istream& operator>>(std::istream& s, BookItem& item); + class BookItem : BaseBookItem + { + public: + BookItem() + { + } + virtual ~BookItem() + { + } + //=============================================================================== + /** + *Переопределяет операторы вывода/вывода + */ + friend std::ostream& operator<<(std::ostream& s, const BookItem& item); + friend std::istream& operator>>(std::istream& s, BookItem& item); - friend CBookItems; - }; + friend CBookItems; + }; - vector > _aItems; + vector _aItems; public: @@ -90,7 +100,7 @@ public: /** *Возвращает элемент телефонного справочника */ - const BookItem& GetItem(int nNumOfItem); + const BookItem& GetItem(int nNumOfItem); //=============================================================================== /**