Виртуальные функции

Предположим, что мы пишем программу для изображения фигур на экране. Общие атрибуты фигуры представлены классом shape, а специальные атрибуты - специальными классами:

class shape { point center; color col; //... public: void move(point to) { center=to; draw(); } point where() { return center; } virual void draw(); virtual void rotate(int); //... };

Функции, которые можно определить не зная точно определенной фигуры (например, move и where, то есть, "передвинуть" и "где"), можно описать как обычно. Остальные функции описываются как virual, то есть такие, которые должны определяться в производном классе. Например:

class circle: public shape { int radius; public: void draw(); void rotatte(int i) {} //... };

Теперь, если shape_vec - вектор фигур, то можно написать:

for (int i = 0; i

*1 Программирующим на C << известно как операция сдвига влево для целых. Такое использование << не утеряно; просто в дальнейшем << было определено для случая, когда его левый операнд является потоком вывода. Как это делается, описано в #1.8. (прим. автора)

*2 одномерный массив. Это принятый термин (например, вектора прерываний), и мы сочли, что стандартный перевод его как "массив" затуманит изложение. (прим. перев.)

*3 англ. dereference - получить значение объекта, на который указывает данный указатель. (прим. перев.)

*4 в оригинале expression-oriented (expression - выразительность и выражение). (прим. перев.)

Глава 2 Описания и Константы

Совершенство достигается только к моменту краха.

- С.Н. Паркинсон

В этой главе описаны основные типы (char, int, float и т.д.) и основные способы построения из них новых типов (функций, векторов, указателей и т.д.). Имя вводится в программе посредством описания, которое задает его тип и, возможно, начальное значение. Даны понятия описания, определения, области видимости имен, времени жизни объектов и типов. Описываются способы записи констант в C++, а также способы определения символических констант. Примеры просто демонстрируют характерные черты языка. Более развернутый и реалистичный пример приводится в следующей главе для знакомства с выражениями и операторами языка C++. Механизмы задания типов, определяемых пользователем, с присоединенными операциями представлены в Главах 4, 5 и 6 и здесь не упоминаются.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: