1.19M
Категория: ПрограммированиеПрограммирование

Программирование на С++

1.

Бийский технологический институт
Программирование на С++ в среде
Windows
Сыпин Евгений Викторович, к.т.н., профессор каф. МСИА
1
659305, Россия, Алтайский край, г.Бийск, ул.Трофимова 27, ауд. 301-Б
Тел./факс: (3854) 432 450, e-mail: [email protected], www.msia-bti.ru

2.

Неконтролируемый доступ к данным
Глобальные
данные1
Функция1
2
Глобальные
данные2
Функция2
Функция3
Глобальные
данныеN
ФункцияM

3.

Базовые принципы ООП
Инкапсуляция
Наследование
3
Полиморфизм

4.

Типичная структура программы для
ООП
Объект
Данные
Метод
Объект
4
Метод
Объект
Данные
Данные
Метод
Метод
Метод
Метод

5.

Класс и экземпляр (аналогия)
struct auditoria
{
int nomer;
char korpus;
float ploshad;
};
int main ()
{
auditoria b401;
b401.nomer = 401;
return 0;
}
5

6.

Наследование
Базовый класс
Свойство1
Свойство2
Свойство1
Свойство2
Свойство3
6
Свойство1
Свойство2
Свойство4
Производные классы
Свойство1
Свойство2
Свойство5

7.

Определение класса
class current // Имя класса – правила
// как для переменных
{
private: //Скрытые функции и данные
int k, n; // спецификатор доступа
// не обязателен
public: // Общедоступные функции и
int get_k() // данные – не обязателен.
{
return k;
}
}; // точка с запятой обязательна!

8.

Работа с классом
class time
{
private:
unsigned char chas, min;
public:
void inctime()
{
min++;
if (min == 60)
{
min=0;
chas++;
if (chas==24)
chas=0;
}
}
};
main ()
{
time time1;
time1.min=20; // Ошибка
time1.inctime();
8
}

9.

Методы класса внутри и вне класса
class time
{
private:
unsigned char chas, min;
public:
void inctime();
};
main ()
{
time time1;
time1.inctime();
}
void time::inctime()
{
min++;
if (min == 60)
{
min=0;
chas++;
if (chas==24)
chas=0;
}
}
9

10.

Конструктор по умолчанию и
конструктор без параметров
class time
{
private:
unsigned char chas, min;
public:
time () : chas (12), min(53) {/*Можно использовать*/}
void inctime();
};
main ()
{
time time1;
time1.inctime();
}
10

11.

Конструктор с передачей параметров
class time
{
private:
char chas, min;
public:
time (char ch, char m) : chas (ch), min(m) {}
time (char ch) : chas (ch), min(0) {}
void inctime();
};
main ()
{
time time1 (13, 52), time2 (12);
time1.inctime();
}
11

12.

Конструктор с передачей параметров
class time
{
private:
char chas; int min;
public:
time (char ch, int m) : chas (ch), min(m) {}
time (char ch) : chas (ch), min(0) {}
time (int m) : chas (12), min(m) {}
void inctime();
};
main ()
{
char i=10; int k=25;
time time1 (13, 52), time2 (i), time3 (k);
}
12

13.

Конструктор копирования по умолчанию
class time
{
private:
char chas, min;
public:
time (char ch, char m) : chas (ch), min(m) {}
void inctime();
};
main ()
{
time time1 (13, 52), time2 (time1), time3 = time1;
}
13

14.

Деструктор
class time
{
private:
char *chas, min;
public:
time () : min(20) {chas=new char;}
void inctime();
};
main ()
{
time time1;
}
14

15.

Деструктор
class time
{
private:
char *chas, min;
public:
time () : min(20) {chas=new char;}
~time () {delete chas;}
void inctime();
};
main ()
{
time time1;
}
15

16.

Бийский технологический институт
СПАСИБО ЗА ВНИМАНИЕ!
Сыпин Евгений Викторович, к.т.н., профессор каф.МСИА
16
659305, Россия, Алтайский край, г.Бийск, ул.Трофимова 27, ауд. 301-Б
Тел./факс: (3854) 432 450, e-mail: [email protected], www.msia-bti.ru
English     Русский Правила