Объектно-ориентированное программирование



         

Объектно-ориентированное программирование - стр. 83


Членами класса coord являются действительные x,y,z, координаты центра (наследуемые) и три вектора X,Y,Z, задающие направление осей в пространстве. Объект этого класса может работать и как вектор. В этом случае он представляет собой положение центра системы координат.

ПРИМЕР  6

Используя класс BASE_List, приведенный ниже, опишите класс DoubleList, реализующий список, из действительных чисел.

Рассмотрим абстрактный класс BASE_List. Этот класс реализует двунаправленный линейный список. Список - это последовательность объектов некоторого класса, называемых его элементами. В любой момент времени доступно не более одного элемента списка. Доступ к другим элементам можно получить, последовательно перемещаясь от одного элемента к другому, к концу списка или к его началу. При этом возможны три особых состояния: список пуст , доступный элемент вначале списка и доступный элемент в конце списка.

Возможна вставка нового элемента перед доступным элементом или после него. Для этого служит метод: ins(int b, int before);

Где l- длина вставляемого элемента, before- указывает на то, что элемент должен вставляться перед доступным, если before отлично от нуля, и за ним - если равно. Вставляемый элемент становится текущим. Доступный элемент можно удалить: для этого служит метод del();. При этом становится доступным следующий к концу элемент (если его нет, то предыдущий).

Для перемещения одного элемента к другому используются операторы: ”++”- от начала к концу, ”- -“ - от конца к началу. Метод void*object(); возвращает адрес текущего элемента.

Решение заключается в том что, чтобы сделать более простым доступ к текущему элементу и упростить вставку.

Class DoubleList:virtual public Bas_List{

Public;

Int ins(int befr=1){

Return Base_List::ins(sizeof(TYPE),befr);

}

double&operator*(){

return*((double*)object());

}};

2.7. Виртуальные методы

Как же быть, если мы хотим, чтобы “наследник” вел себя отлично от “предка”, при этом сохраняя свойства совместимости с ним? На этот случай существуют виртуальные методы.




Содержание  Назад  Вперед