Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Cоздание класса


Автор: SergFenko 30.5.2009, 09:49
Вот читаю Шилдта и там есть следующее упражнение : 
Создайте класс card, который поддерживает каталог библиотечных карточек.
Этот класс должен хранить заглавие книги, имя автора и выданное на руки число экземпляров книги. Заглавие и имя автора храните в виде строки символов, а количество экземпляров — в виде целого числа. Используйте открытую функцию-член store() для запоминания информации о книгах и открытую функцию-член show() для вывода информации на экран. В функцию
main() включите краткую демонстрацию работы созданного класса.

Обьясните как правильно построить класс
Вот я начал ваять , но запутался с типами :
Код

class catalog {
        char title [size]; // Название книги              <------------------------ Как описать строковую переменную  ????
        char author [size]; // Автор                  <------------------------ Как описать строковую переменную  ????
        int kol; // Колл-во 
    public
        void store(); // Ф-ция сохранения информации о книге
        void show(); // Ф-ция просмотра содержимого каталога
        
}




Или я не с того начал ?
Насколько я понял должен быть построен массив и надо загнать туда небольшой каталог. Помогите разобраться плз.

Автор: mes 30.5.2009, 10:17
Цитата(SergFenko @  30.5.2009,  08:49 Найти цитируемый пост)
char title [size]; 

Код

std::string title; // #include <string>


Автор: SergFenko 30.5.2009, 10:36
А как потом , чтобы забивать каталог надо делать массив ?

Автор: mes 30.5.2009, 10:52
Цитата(SergFenko @  30.5.2009,  09:36 Найти цитируемый пост)
А как потом , чтобы забивать каталог надо делать массив ? 

чтоб не мучаться и не слишком сложно, можно так :
Код


struct Card
{
   std::string    title;
   std::string   author;
   int   count;
};

class Catalog
{
         std::vector<Card> m_Cards;
  public:
        void Store (std::string    title, std::string   author,   int   count)
         {
             Card card;
              card.title  = title;
              card.author = author;
              card.count  = count;
              m_Cards.push_back (card);
         }
         void Show ()
         {
               for (unsigned i =0; i<m_Cards.size(); ++i)
                std::cout << "Card " << i+1 << std::endl;
                std::cout << "{ "<< std::endl;
                std::cout << "    title   " << m_Cards[i].title << std::endl;
                std::cout << "    author  " << m_Cards[i].author << std::endl;
                std::cout << "    count   " << m_Cards[i].count << std::endl;
                std::cout << "} "<< std::endl;
         }
        
};

P.S. не забудьте про заголовки :
Код

#include <iostream>
#include <vector>

Автор: SergFenko 30.5.2009, 10:55
Спасибо большое!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)