Ббк 32. 973-018 г рецензент канд физ мат наук, Ф. А. Мурзин


Download 278.16 Kb.
bet50/68
Sana12.10.2023
Hajmi278.16 Kb.
#1700499
TuriКурс лекций
1   ...   46   47   48   49   50   51   52   53   ...   68
Bog'liq
FIT-Gor-PP3

Программа

Пояснение

//HELLO.CPP

Комментарий с именем файла программы

#include

Препроцессор с вызовом библиотеки

Void main ()

Головная функция

{ cont << ”\nHello, World!\n” ;

Вывод приветствия на стандартное устройство

}




Пример 50. Программа на языке С++

Практический выигрыш от ООП можно показать на технике применения средств вывода данных.





Фрагмент

Пояснение

printf (“x = %d, y = % s”, x, y);

Вывод целого и строки. «x» должен быть целым, а «y» – строкой

Пример 51. Вывод по библиотеке функций stdio.h

Программист должен знать, что первый параметр задает формат вывода и отследить согласование его с числом и типами выводимых данных и обозначениями форматов для функции printf.





Фрагмент

Пояснение

cout << “x = ” << x << “, y = ” << y ;

Поток вывода управляется фактическим
типом данных.

Пример 52. Вывод по библиотеке классов iostream.h

Программисту достаточно перечислить элементы вывода в естественном порядке. Библиотека классов iostream.h содержит перегрузку операции «<<» для всех основных типов данных, что позволяет компилятору выбрать нужный шаблон кода программы, и программист освобожден от необходимости представлять в программе сведения о формате выводимых данных.


Учитывая примеры описания и определения классов, можно сделать вывод, что внешние изменения в тексте программы на С++ в сравнении с текстом на C выглядят как появление ряда новых спецификаторов, с помощью которых как бы задается разметка программы, на области видимости, связанные с иерархией классов и дисциплиной доступа к элементам структурированных объектов класса. В результате вместо анализа последовательностей изменения состояний памяти по всей программе достаточно проанализировать изменения в пределах синтаксически выделенных путей по иерархии наследования методов объектов.
Доступность вложенного класса ограничивается областью видимости лексически объемлющего класса. Если у класса есть конструктор, он вызывается всякий раз при создании объекта этого класса. Если у класса есть деструктор, он вызывается всякий раз, когда уничтожается объект этого класса.
Чтобы можно было описать массив объектов класса с конструктором, этот класс должен иметь стандартный конструктор, вызываемый без параметров. В описании массива объектов не предусмотрено возможности указать параметры для конструктора. Когда уничтожается массив, деструктор должен вызываться для каждого элемента массива.
Производный класс наследует базовый класс, он больше своего базового класса в том смысле, что в нем содержится больше данных, и определено больше функций. Производный класс сам, в свою очередь, может быть базовым классом. Такое множество связанных между собой классов обычно называют иерархией классов. Обычно она представляется деревом, но бывают иерархии с более общей структурой в виде ориентированного графа. У класса может быть несколько прямых базовых классов. Возможность иметь более одного базового класса влечет за собой возможность неоднократного вхождения класса как базового.
С помощью виртуальных функций можно иметь разные версии в разных производных классах, а выбор нужной версии при вызове – это задача транслятора. Тип функции указывается в базовом классе и не может быть переопределен в производном классе. Класс, в котором есть виртуальные функции, называется абстрактным. Абстрактный класс можно использовать только в качестве базового для другого класса.

Фрагмент

Пояснение

class complex { double re, im; public:
complex(double r, double i) { re=r; im=i; }

Download 278.16 Kb.

Do'stlaringiz bilan baham:
1   ...   46   47   48   49   50   51   52   53   ...   68




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling