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

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

.txt
Скачиваний:
5
Добавлен:
16.12.2014
Размер:
1 Кб
Скачать
#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();
}