Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

наследование пример1

.txt
Скачиваний:
4
Добавлен:
16.12.2014
Размер:
1.42 Кб
Скачать
#include <iostream>
 
class Counter
   {
   protected:                            //NOTE: not private
      unsigned int count;                //count
   public:
      Counter() : count(0)               //constructor, no args
         {  }
      Counter(int c) : count(c)          //constructor, one arg
         {  }
      unsigned int get_count() const     //return count
         { return count; }
      Counter operator ++ ()             //incr count (prefix)
         { return Counter(++count); }
   };
////////////////////////////////////////////////////////////////
class CountDn : public Counter
   {
   public:
      CountDn() : Counter()              //constructor, no args
         { }
      CountDn(int c) : Counter(c)        //constructor, 1 arg
         { }
      CountDn operator -- ()             //decr count (prefix)
         { return CountDn(--count); }
   };
////////////////////////////////////////////////////////////////
class CountP : public CountDn
{
public:
        CountP() : CountDn()
        {}
        CountP(int c) : CountDn(c)
        {}
        CountP operator ++ (int) 
        { return CountP(count++); }
        CountP operator -- (int)
        { return CountP(count--); }
}; 
 
int main()
{
    CountP count(5);
    std::cout << count.get_count() << '\n';
    count++;
    std::cout << count.get_count() << '\n';
getchar();
getchar();
}