русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Постфіксні операції


Дата додавання: 2014-04-22; переглядів: 983.


Досі ми застосовували операцію збільшення, використовуючи тільки префіксний запис

++с1

А як можна використовувати постфіксний запис, де змінна збільшується після того, як її значення було використано у виразі с1++ ?

Щоб мати змогу працювати з двома версіями операції, ми визначимо два варіанти перезавантаження операції ++. Це показано в програмі 10.4

#include <iostream.h>

#include <conio.h>

#include <bios.h>

class Counter

{private:

unsigned int count;

public:

Counter():count(0) //constructor

{ }

Counter (int c):count(с)

{ }

 

unsigned int get_count()

{return count;}

 

Counter operator++ ()

{return Counter(++count);}

 

Counter operator++ (int)

{return Counter(count++);}

 

};

////////////////////

int main()

{

clrscr();

Counter c1,c2;

cout << “\nc1=”<<c1.get_count();

cout <<”\nc2=”<<c2.get_count()<<endl;

++c1;

c2=++c1;

cout <<”\nPrefix”<<endl;

cout << “c1=”<<c1.get_count();

cout <<”\nc2=”<<c2.get_count();

cout <<endl;

c2=c1++;

cout <<”\nPostfix”<<endl;

cout << “c1=”<<c1.get_count();

cout <<”\nc2=”<<c2.get_count();

bioskey(0);

return 0;

}

Програма 10.4

Тепер ми маємо два типи оголошення функції operator++. З однією з них, для префіксної операції, ми вже познайомилися.

Counter operator++ ()

Для реалізації постфіксної операції ++ використаємо нову функцію:

Counter operator++ (int)

Різниця між цими функціями лише в тому, що в дужках проставлено int. Тут int не грає ролі аргументу і не означає цілого числа. Це просто сигнал для компілятора, щоб використовувалася постфіксна версія операції. Розробники С++ вважали корисним повторне використання існуючих операцій і ключових слів; в даному випадку int призначена також для позначення постфіксної операції.

 

Перезавантаження бінарних операцій

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

 


<== попередня лекція | наступна лекція ==>
Тимчасові безіменні об’єкти | Арифметичні операції


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн