Автор работы: Пользователь скрыл имя, 22 Ноября 2011 в 22:05, курсовая работа
Исторически сложилось так, что программирование возникло и развивалось как процедурное программирование, которое предполагает, что основой программы является алгоритм, процедура обработки данных. Объектно-ориентированное программирование - это методика разработки программ, в основе которой лежит понятие объекта как некоторой структуры, описывающей объект реального мира, его поведение. Задача, решаемая с использованием методики объектно-ориентированного программирования, описывается в терминах объектов и операций над ними, а программа при таком подходе представляет собой набор объектов и связей между ними.
Введение 2 стр.
Конструкторы в С++ 4 стр.
Создание простого конструктора 4 стр.
Представление о конструкторе 7 стр.
Конструкторы и параметры по умолчанию 7 стр.
Перегрузка конструкторов 8 стр.
Деструкторы в С++ 11 стр.
Представление о деструкторе 11 стр.
Деструкторы 15 стр.
Заключение 15 стр.
Практическая часть 16 стр.
Список использованой литературы 19 .стр.
Деструктор
автоматически запускается
Каждая из созданных до сих пор программ создавала объекты в самом начале своего выполнения, просто объявляя их. При завершении программ C++ уничтожал объекты. Если определяется деструктор внутри своей программы, C++ будет автоматически вызывать деструктор для каждого объекта, когда программа завершается (т.е. когда объекты уничтожаются). Подобно конструктору, деструктор имеет такое же имя, как и класс объекта. Однако в случае деструктора предваряется его имя символом тильды (~), как показано ниже:
~class_name (void) //----------->указывает деструктор
{
// Операторы деструктора
}
В
отличие от конструктора нельзя передавать
параметры деструктору.
void employee::-employee(void)
{
cout << "Уничтожение объекта для "
<< name << endl;
}
В данном случае деструктор просто выводит на экран сообщение о том, что C++ уничтожает объект. Когда программа завершается, C++ автоматически вызывает деструктор для каждого объекта. Ниже приведена реализация программы DESTRUCT.CPP:
#include <iostream.h>
#include <string.h>
class employee
{
public:
employee(char *, long, float);
~employee(void);
void show_employee(void);
int change_salary(float);
long get_id(void);
private:
char name [64] ;
long employee_id;
float salary;
};
employee::employee(char *name, long employee_id, float salary)
{
strcpy(employee::name, name) ;
employee::employee_id = employee_id;
if (salary < 50000.0) employee::salary = salary;
else // Недопустимый оклад
employee::salary в 0.0;
}
void employee::-employee(void)
{
cout << "Уничтожение объекта для "
<< name << endl;
}
void employee::show_employee(void)
{
cout << "Служащий: " << name << endl;
cout << "Номер служащего: " << employee_id
<< endl;
cout << "Оклад: " << salary << endl;
}
void main(void)
{
employee worker("Happy Jamsa", 101, 10101.0);
worker.show_employee();
}
Если откомпилировать и запустить эту программу, на экране появится следующий вывод:
С:\> DESTRUCT <ENTER>
Служащий: Happy Jamsa
Номер служащего: 101
Оклад: 10101
Уничтожение объекта для Happy Jamsa
Программа
автоматически вызывает деструктор,
без какого-либо явного вызова функции
деструктора.
Деструктор
представляет собой функцию, которую
C++ автоматически запускает, когда
он или программа уничтожает объект.
Деструктор имеет такое же имя, как
и класс объекта; однако предваряется
имя деструктора символом тильды
(~), например ~employee. В программе определяется
деструктор точно так же, как и любой другой
метод класса.
Заключение
Конструкторы
и деструкторы представляют собой
специальные функции класса, которые
программа автоматически
Условие задачи:
Написать программу, которая выводит на
экран изображение работающего светофора.
Рекомендуемый вид светофора и алгоритм
его работы приведены ниже:
мигающий зеленый |
Программа на С++
// Светофор
#include <stdio.h>
# include <graphics.h>
include <conio.h>
#include <dos.h>
ttdefine PATHTODRIVER "c:\\borlandc\\bgi\\"
// рисует круг заданного
цвета
void krug(int x,int у, int r,
int fc, int be)
(
// x, у, г - координаты
центра и радиус // fc, be - цвет круга и окантовки
setfillstyle(SOLID_FILL,fc, 205);
piesIice (х, у, 0, 360, г);
setcolor(be);
circle(х,у,г);
void main(void)
{
int gdriver = DETECT; // драйвер
int gmode; // режим
int errorcode; // код ошибки
initgraph(Sgdriver, Sgrnode, PATHTODRIVER);
errorcode = graphresult();
if (errorcode != grOk) // ошибка
инициализации
// графического режима
' {
printf("Ошибка: %d\n",
errorcode);
puts("Для завершения
программы нажмите <Enter>")
getch();
outtextxy(10,10,"Соблюдайте
правила уличного движения!")
rectangle (88,88,112,152);
// Горит красный свет
krug(100,100,10,RED,WHITE);
krug(100, 120, 10, LIGHTGRAY, WHITE)
;
krug(100, 140, 10, LIGHTGRAY, WHITE)
;
for (int i = 1; i <= 3;i++)
// Здесь горит красный
delay(3000); // задержка
3 сек
krug(100,120,10,YELLOW,WHITE);
// Включить желтый
delay(1000);
krug(100,100,10,LIGHTGRAY,
krugd(100, 120,10, LIGHTGRAY,WHITE)
; // Выключить желтый
krugd(100, 140,10,GREEN,WHITE)
; // Включить зеленый
delay(2000);
// Мигающий зеленый
сигнал
for (int j = 1; j <= 5; j++)
// мигает 5 раз
delay(500);
krug(100,140,10,GREEN,WHITE);
delay(500);
krug(100,14 0,10,LIGHTGRAY,WHITE)
krug(100,120,10,YELLOW,WHITE);
krug{100,120,10,LIGHTGRAY,
krug(100,100,10,RED,WHITE);
// Включить // зеленый
;// Выключить // зеленый
// Включить // желтый
// Выключить // желтый
// Включить // красный
outtextxy(10,25,"Нажмите
<Enter>!");
getch();
closegraph(); // выход из
графического
режима
Список использованой литературы