Cтраница 1
Драйвер для иерархии точка, круг, цилиндр ( часть 9 из 9. [1] |
Программа драйвер ( рис. 10.2, части 8 и 9) начинает свою работу с создания объекта point класса Point, объекта circle класса Circle и объекта cylinder класса Cylinder. Этот массив указателей базового класса используется для того, чтобы указывать на каждый созданный объект производного класса. [2]
Определения функций-элементов класса Date ( часть 3 из 6. [3] |
Программа драйвер выводит каждый из сконструированных объектов типа Date, используя перегруженную операцию поместить в поток. Затем d4 увеличивается на 1 с помощью перегруженной операции префиксного инкремента. Дата печатается до и после инкрементирования, чтобы удостовериться, что она изменилась правильно. В заключение, d4 инкрементируется перегруженной операцией постфиксного инкремента. Дата печатается до и после инкрементирования, чтобы удостовериться, что она изменилась правильно. [4]
Драйвер класса Point ( часть 3 из 3. [5] |
Программа драйвер создает объект класса Circle, затем использует функции доступа, чтобы получить информацию об объекте класса Circle. Функция main не является ни функцией-элементом, ни другом класса Circle, так что она не может непосредственно ссылаться на защищенные данные класса Circle. Затем программа драйвер использует функции установки setRadius и setPoint для переустановки радиуса и координат центра круга. [6]
С другими частями программы драйвер связан при помощи кольцевого буфера, который мы будем называть буфером событий. Буфер событий состоит из указателей на начало и конец области данных и самой области данных. Каждый элемент данных буфера событий состоит из двух слов. Первое содержит информацию о времени наступления события, второе - несколько однобитовых флагов, характеризующих тип импульса. [7]
Далее мы рассмотрим программу драйвер в main. Мы обсудим желательный нам стиль кодирования, т.е. вид выражений, которые нам хотелось бы иметь возможность записывать для объектов нашего нового класса String, и соответствующий набор перегруженных операций класса. [8]
Пример множественного наследования ( часть 6 из 6. [9] |
Теперь давайте рассмотрим программу драйвер в main. Наконец, мы создаем объект d класса Derived и задаем начальные значения 7 для целого, А для символа и 3.5 для действительного элементов. [10]
Определение класса Circle ( часть 3 из 5.| Определения функций элементов класса Circle ( часть 4 из 5. [11] |
В части 5 представлена программа драйвер для иерархии Point - Circle. Программа начинается созданием объекта класса Point со своей собственной областью определения внутри main. Управление входит и сразу выходит из области определения этого объекта, так что вызываются и конструктор, и деструктор объекта. Затем программа создает объект circlel класса Circle. Это активизирует конструктор класса Point, осуществляющий вывод значений, переданных ему из конструктора класса Circle, затем выполняется вывод, указанный в конструкторе класса Circle. Следующим возникает объект circle2 класса Circle. Снова вызываются конструкторы классов Point и Circle. Отметим, что тело конструктора Point выполняется раньше тела конструктора Circle. Деструкторы вызываются в последовательности, обратной вызовам соответствующих им конструкторов. [12]
На рис. 9.8 часть 2 представлены определения функций-элементов класса Point, а на рис. 9.8 часть 3 представлена программа драйвер класса Point. Заметим, что main должна использовать функции доступа getX и getY, чтобы читать значения защищенных данных-элементов х и у; напомним, что защищенные данные-элементы доступны только элементам и друзьям их класса и производного класса. [13]
Определение класса Point ( часть 1 из 3.| Функции элементы класса Point ( часть 2 из 3. [14] |
Здесь повторно использованы определение класса Point и определения функций-элементов из рис. 9.8. В частях с 1 по 3 показаны описание класса Circle, определения функций-элементов класса Circle и его программа драйвер. Заметим, что класс Circle наследуется от класса Point открытым наследованием. [15]