-Рубрики

 -Музыка

 -Подписка по e-mail

 

 -Поиск по дневнику

Поиск сообщений в TheLenka

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 03.01.2009
Записей:
Комментариев:
Написано: 265


Многоуровневое наследование

Среда, 24 Июня 2009 г. 16:16 + в цитатник



class Point 
{
protected:
 int x,y;
public:
 Point ():x(50),y(50) {}
};
class ColorPoint : public Point
{
 protected:
 int color;
 public:
 ColorPoint ():Point(),color(5) {}
};
class Rectangle : public ColorPoint
{
 protected:
 int x1, y1;
 public:
 Rectangle ():ColorPoint(),x1(100),y1(100) {}
};
class RectangleFill : public Rectangle
{
 protected:
 int fill;
 public:
 RectangleFill():Rectangle(),fill(10) {}
 void Show()
 {
cout<<"("<<x<<","<<y<<")-("<<x1<<","<<y1<<") "<<color<<" "<<fill<<endl; //(50,50)-(100,100) 5 10
 }
};
void main()
{
 RectangleFill rf;
 rf.Show();
 _getch();
}
В данном случае класс RectangleFill является наследником класса Rectangle, а класс Rectangle является в свою очередь наследником класса ColorPoint и т.д..
Такое наследование может продолжаться бесконечно. Соответственно, конструкторы и методы могут быть переопределены, как и конструкторы классов. Причем, мы можем использовать любой класс из этого дерева отдельно.

 


 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку