Страница 1 из 1
Наследование
Добавлено: 21 ноя 2009, 16:37
lolopolosko
Привет!
Есть у меня одна задачка из лабораторной работы. Дело в том что на лекцие я не был по этой теме(Наследование), и потому прошу вашей помощи.
Условия задачи:
Создать класс ТОЧКА ,которая имеет координаты .Класс ЕЛИПС и КРУГ. Определить иерархию типов. Определить функцию вывода на экран, площу елипса и круга, конструктор, деструктор!
Re: Наследование
Добавлено: 22 ноя 2009, 19:04
Airhand
В общем как-то так. Но набирал в инет-редакторе, так, что может не компилиться.
Код: Выделить всё
class Point
{
public:
Point(){};
~Point(){};
private:
double x;
double y;
};
class Circle: public Point
{
...
}
Re: Наследование
Добавлено: 22 ноя 2009, 19:16
Newbie
Airhand писал(а):В общем как-то так. Но набирал в инет-редакторе, так, что может не компилиться.
Код: Выделить всё
class Point
{
public:
Point(){};
~Point(){};
private:
double x;
double y;
};
class Circle: public Point
{
...
}
1. м.б. лучше protected а не приват
2. тоже пригодится.
Код: Выделить всё
class Point
{
...
virtual void Draw()
{
}
}
class Circle: public Point
{
virtual void Draw()
{
}
}
class Ellipse: public Circle
{
virtual void Draw()
{
}
}
+ обьявлять витуальными деструкторы
Re: Наследование
Добавлено: 22 ноя 2009, 20:42
Airhand
Protected не лучше Private, т.к. все операции с координатами, нужно выполнять на уровне Point. Если управлять координатами на уровне наследников, то будет нарушена инкапсуляция. Может тебе для лабы, таких подробностей и не надо.