Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
10
Добавлен:
12.02.2016
Размер:
257.67 Кб
Скачать

stack();

// Конструктор

~stack();

// Деструктор

void push(int i); int pop(); };

// Конструктор класу stack stack::stack()

{

tos = 0;

cout << " Стек ініціалізовано \n"; }

// Деструктор класу stack stack::~stack()

{

cout << "Стек знищено \n";

}

Врахуйте, що конструктори й деструктори не повертають ніяких значень.

Проілюструємо роботу конструктора й деструктора за допомогою нової версії програми stack. Зверніть увагу на те, що тепер функція init() не потрібна.

21/33

// Використання конструктора й деструктора.

#include <iostream> using namespace std; #define SIZE 100

// Створюємо клас stack class stack { int stck[SIZE]; int tos;

public:

stack();

// Конструктор

~stack();

// Деструктор

void push(int i); int pop();

// Конструктор класу stack stack::stack()

{tos = 0;

cout << " Стек ініціалізовано \n"; }

// Деструктор класу stack stack::~stack()

{cout << "Стек знищено \n"; }

22/33

void stack::push(int i)

{

if(tos==SIZE)

{ cout << "Стек повний \n";

return;

 

}

i;

stck[tos] =

tos++;

 

}

 

int stack::pop()

if(tos == 0)

{

cout <<: "Стек порожній \n"; return 0;

}

tos ---і;

return stck[tos];

}

int main()

{

stack a, b; // Створюємо два об'єкти класу stack a.push(1); b.push(2);

a.push(3) ; b.push(4);

23/33

cout << a.pop() << " "; cout << a.pop() << " "; cout << b.pop() << " "; cout << b.pop() << "\n"; return 0;

}

Результат роботи програми виглядає так.

Стек ініціалізовано Стек ініціалізовано

3 1 4 2

Стек знищено Стек знищено

24/33

5. Приклади програм

Наведемо декілька прикладів типових завдань до лабораторної роботи.

Даний приклад демонструє перевантаження функції suma, для обчислення суми двох цілих чисел, довгих цілих чисел і двох чисел з плаваючою крапкою.

#include <iostream.h> #include <conio.h>

// Funkciya SUMA perehruzhena trychi int suma(int a, int b);

long int suma (long e, long f); double suma(double c, double d);

//

int main()

{

int i1,i2;

long int l1,l2; double d1, d2; clrscr ();

cout << "Vvedit' dva cilyh chysla" << "\n"; cin >> i1 >> i2; cout << "\n";

cout << "Vvedit' dva dovgyh cilyh chysla" << "\n"; cin >> l1 >> l2; cout << "\n";

25/33

cout << "Vvedit' dva chysla typu double" << "\n"; cin >> d1 >> d2; cout << "\n";

cout << "Suma cilyh" << "\n";

cout << suma(i1,i2) << "\n";cout << "\n"; cout << "Suma dovhyh cilyh" << "\n";

cout << suma(l1,l2) << "\n"; cout << "\n"; cout << "Suma chysel double" << "\n";

cout << suma(d1,d2) << "\n"; getch ();

return 0;

}

// Suma dvoh cilyh

int suma(int a, int b) {int a1;

a1=a+b;return a1;}

// Suma dovgyh cilyh

long int suma(long int c, long int d) {long int a2;

a2=c+d;return a2;}

// Suma chysel double

double suma(double e, double f)

26/33

{double a3; a3=e+f;return a3;}

 

Результат

 

 

Vvedit' dva cilyh chysla

Suma cilyh

33

100

67

Suma dovhyh cilyh

Vvedit' dva dovgyh cilyh chysla

999999

444444

 

555555

Suma chysel double

Vvedit' dva chysla typu double

7.777778

 

5.55555555

 

2.22222222

 

27/33

Наступний приклад демонструє роботу з відкритими і закритими членами класу.

#include <iostream.h> #include <stdio.h> #include <conio.h> #include <string.h>

// Opys clasu EMPLOYEE class employee

{

// Zakryti chleny klasu

char name[80]; double wage; public:

void putname(char *p); void getname(char *p); void putwage(double w); double getwage();

};

// Zadannya imeni i prizvishcha

void employee::putname(char *s)

{

strcpy(name, s);

}

28/33

// Vyvid imeni i prizvishcha

void employee::getname(char *s)

{

strcpy(s, name);

}

// Vvid (zadannya) zarplaty

void employee::putwage(double w)

{

wage=w;

}

// Powernenna (vyvid) zarplaty double employee::getwage()

{

return wage;

}

int main()

{

employee petro; char name[40]; clrscr ();

// Zadannya imeni i zarplaty

29/33

petro.putname("Petro Samchuk"); petro.putwage(15000);

// Vyvid danyh petro.getname(name);

cout << name << "\n" << "zaroblaye " << petro.getwage () << " grn. za rik";

getch (); return 0;

}

Результат

Petro Samchuk

zaroblaye 15000 grn. za rik

30/33

Соседние файлы в папке ТА_Методички