Страница 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. Если управлять координатами на уровне наследников, то будет нарушена инкапсуляция. Может тебе для лабы, таких подробностей и не надо.