Программирование
Тема 4.1 C++. Введение в классы и объекты
25.11.2016
1
-
Технологии программирования
-
Процедурное программирование (с 1957 г., Фортран, Алгол-60 и др);
-
Структурное программирование (начало 70-х, Паскаль, Си и др);
-
Модульное программирование (с 1975 г., Модула, Turbo Pascal, Turbo С и др);
-
Объектно - ориентированное программирование (с середины 80-х, Object Pascal, C++, Java, C# и др.)
25.11.2016
2
-
Процедурное программирование заключается в разработке набора функций (алгоритмов) для решения поставленной задачи. Для поддержки этой парадигмы языки программирования предоставляли механизм передачи параметров и получения результатов функций.
-
Структурное программирование: – основные положения:
-
любую программу можно написать, пользуясь ограниченным набором базовых конструкций :
-
последовательность операторов/блоков,
-
ветвление или выбор ,
-
циклы: с постусловием, цикл с предусловием.
-
Каждая из базовых конструкций имеет один вход и один выход.
-
“Правильная” структура программы (блока программы, подпрограммы), имеет один вход и один выход. Любую программу можно и нужно писать без использования оператора goto, который очень запутывает структуру программы. Для исключения оператора goto достаточно применять базовые конструкции “цикл”.
-
Одновременно с определением набора базовых конструкций была осознана необходимость предварительного анализа данных и конструирования структур данных на начальной стадии разработки программы (В Си для этого есть структуры, объединения и перечисления).
-
Модульное программирование: логически связанные между собой подпрограммы и общие данные с которыми они работают (переменные, константы, пользовательские типы данных) размещаются в отдельные модули, части программы, которые компилируются независимо друг от друга.
-
Если рассматривать структуру модуля, то модуль состоит из двух частей: интерфейс и реализация. В Си (С++) и интерфейсная часть модуля и реализация размещаются в отдельных файлах. Интерфейсная часть модуля – в заголовочном файле ( .h), а реализация модуля в файле реализации (.cpp).
25.11.2016
3
-
Пример модуля (Си):
-
// Student.h
-
#ifndef STUDENT_H
-
#define STUDENT_H
-
#define MIN_AGE 12 // Константы
-
#define MAX_AGE 99
-
typedef struct s{ // Описание новых типов данных
-
char Name[20];
-
int Age;
-
//...
-
} TStudent;
-
int InputDataStudent(TStudent* S); // Прототипы функций
-
void OutputDataStudent(TStudent* S);
-
int AverageAge();
-
#endif
25.11.2016
4
-
Пример модуля (Си):
-
// Student.c
-
#include "Student.h"
-
// определения функций
-
int InputDataStudent(TStudent* S){
-
//...
-
}
-
void OutputDataStudent(TStudent* S){
-
//...
-
}
-
int AverageAge(){
-
//...
-
}
25.11.2016
5
-
Объектно-ориентированное программирование развивает идеи модульного программирования по объединению структур данных и алгоритмов их обработки.
-
Основными элементами объектно-ориентированной программы в С++ являются классы и объекты.
-
Класс – это конструкция языка программирования С++, которая объединяет в себе переменные и функции, которая может определять новый тип данных, который можно использовать для создания объектов этого типа.
-
Объект в С++ и других объектно - ориентированных языках программирования – это переменная типа класс.
-
Переменные, объявленные в классе называют полями данных объекта. Функции, описанные в классе называют методами.
25.11.2016
6
-
Синтаксис объявления класса в С++:
-
class имя_класса
-
{ [private:]
-
// объявление закрытых полей данных и
-
// объявление или определение закрытых методов
-
[protected:]
-
// объявление защищенных полей данных и
-
//объявление или определение защищенных методов
-
[public:]
-
// объявление открытых полей данных и
-
// объявление или определение открытых методов
-
};
25.11.2016
7