Наследование

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
lolopolosko
Сообщения: 1
Зарегистрирован: 21 ноя 2009, 16:35

Привет!

Есть у меня одна задачка из лабораторной работы. Дело в том что на лекцие я не был по этой теме(Наследование), и потому прошу вашей помощи.

Условия задачи:

Создать класс ТОЧКА ,которая имеет координаты .Класс ЕЛИПС и КРУГ. Определить иерархию типов. Определить функцию вывода на экран, площу елипса и круга, конструктор, деструктор!
Аватара пользователя
Airhand
Сообщения: 239
Зарегистрирован: 06 окт 2005, 16:21
Откуда: Dnepropetrovsk

В общем как-то так. Но набирал в инет-редакторе, так, что может не компилиться.

Код: Выделить всё

class Point
{
public:
    Point(){};
    ~Point(){};
private:
    double x;
    double y;
};
class Circle: public Point
{
...
}
Оптимизация по скорости:
#define while if
Оптимизация по размеру:
#define struct union
Newbie
Сообщения: 148
Зарегистрирован: 06 сен 2009, 19:45

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()
{
}
}
+ обьявлять витуальными деструкторы
Аватара пользователя
Airhand
Сообщения: 239
Зарегистрирован: 06 окт 2005, 16:21
Откуда: Dnepropetrovsk

Protected не лучше Private, т.к. все операции с координатами, нужно выполнять на уровне Point. Если управлять координатами на уровне наследников, то будет нарушена инкапсуляция. Может тебе для лабы, таких подробностей и не надо.
Оптимизация по скорости:
#define while if
Оптимизация по размеру:
#define struct union
Ответить