У вас есть один интерфейс с множеством виртуальных методов? Или у меня много интерфейсов только с одним виртуальным методом?

У меня есть модуль C ++, которому нужно получать информацию из других классов, не зная этих классов. Очевидный подход - использовать интерфейсы.

Позвольте мне привести вам пример. Предположим, у меня есть библиотека, которая управляет книгами, и все книги имеют свои собственные характеристики и функции, и чтобы позволить библиотеке получить характеристику от книги или выполнить функцию, книга должна реализовать интерфейс. Как это:

class Library
   {
   public:
      void addBook(IBook &book);
   };

class IBook
   {
   public:
      string getAuthor()    = 0;
      string getTitle()     = 0;
      string getISBNCode()  = 0;
      size_t getNofPages()  = 0;
      size_t getNofImages() = 0;
      double getPrice()     = 0;
      void   printBook()    = 0;
      void   convertToPdf() = 0;
   };

К сожалению,

Есть идеи?

5
задан Patrick 19 November 2010 в 11:37
поделиться