Преглед садржаја
- Шта је Ц++?
- Зашто користити Ц++
- Карактеристике
- Подешавање локалног окружења
- Ц++ Басиц Инпут/Оутпут
- Стандардни излазни ток (цоут)
- Стандардни улазни ток (цин)
- Стандардна крајња линија (ендл)
- Ц++ променљиве
- Ц++ идентификатори
- Ц++ типови података
- Ц++ константе/литерали
- Ц++ Класе складиштења
- Типови Ц++ модификатора
- Оператори у Ц++
- Ц++ петље
- Изјаве о доношењу одлука
- Ц++ функције
- Ц++ бројеви
- Ц++ низови
- Ц++ стрингс
- Ц++ показивачи
- Ц++ Референце
- Ц++ датум и време
- Ц++ структуре података
- Ц++ класе и објекти
- Ц++ наследство
- Ц++ модификатори приступа
- Преоптерећење Ц++-а
- Ц++ полиморфизам
- Ц++ апстракција података
- Ц++ Енкапсулација података
- Ц++ апстрактне класе
- Ц++ Управљање изузецима
- Ц++ динамичка меморија
- Ц++ шаблони
- Ц++ препроцесори
- Ц++ Руковање сигналима
- Ц++ веб програмирање
- Закључак
- Препоручени чланци
Шта је Ц++?
Ц++ је вишеплатформски језик који се користи за креирање апликација високих перформанси. Бјарне Строуструп га је развио као проширење језика Ц. Ц++ даје програмерима контролу над системским ресурсима и меморијом. Језик је ажуриран три значајна пута 2011, 2014. и 2017. на Ц++11, Ц++14 и Ц++17.
Зашто користити Ц++
- Ц++ је један од најпопуларнијих језика за програмирање.
- Ц++ се може наћи у оперативним системима, ГУИ-има и уграђеним системима.
- То је објектно оријентисани програмски језик који даје јасну структуру програмима и омогућава поновну употребу кода, смањујући трошкове развоја.
- Преносив је и може се користити за развој апликација које се могу прилагодити вишеструким платформама.
- Како је Ц++ близак Ц# и Јава , олакшава програмерима да пређу на Ц++ или обрнуто.
Карактеристике
- Захтева заглавље.
- Користите именски простор стд; да упозори компајлер да користи именски простор стд.
- Линија инт маин() је главна карактеристика где почиње извршавање програма.
- Следећи ред сече на<< Hello World; the word Hello World is reflected on the keyboard.
- Следећи ред враћа 0; функција маин() се завршава.
- инт а;
- инт _аб;
- инт а30;
- инт 4;
- интки;
- инт доубле;
- Вредност труе представља истинито.
- Вредност фалсе представља лажно.
- потписан
- непотписан
- дугачак
- кратак
- Аритметички оператор
- Логички оператор
- Битвисе Оператор
- Оператор додељивања
- Релациони оператор
- Мисц Оператор
- ако изјава
- иф..елсе изјаве
- угнежђене иф изјаве
- ако-друго-ако мердевине
- Скочне изјаве:
- пауза
- Настави
- Иди на
- повратак
- инт – тип елемента који се чува
- и – име низа
- 4 – величина низа
- Стрингови који су објекти стринг класе
- Ц-жице
- Прво дефинишите променљиву показивача
- Сада доделите адресу променљиве показивачу користећи (&) који враћа адресу те променљиве.
- Приступ вредностима ускладиштеним у адреси помоћу (*) који враћа вредност променљиве која се налази на адреси наведеној њеним операндом.
- Ин вишеструко наслеђе, изведена класа се креира од друге изведене класе и исте основне класе друге изведене класе. Ово наслеђе не подржава . НЕТ Језици попут Ц#, Ф# итд.
- Јавно
- Приватно
- Заштићено
- Члановима који су декларисани као јавни у класи може се приступити са било ког места у програму.
- Члановима који су декларисани као приватни у класи може се приступити само из класе. Није им дозвољено да им се приступи из било ког дела кода ван класе.
- Учините све чланове података приватним.
- Креирајте јавне функције за подешавање и геттер за сваког члана података на такав начин да функција сет постави вредност члана података, а функција гет добије вредност члана података
- Стварање динамичког простора у меморији
- Чување његове адресе у показивачу
- Фунцтион Темплатес
- Цласс Темплатес
- макро
- Укључивање датотеке
- Условна компилација
- Друге директиве
Подешавање локалног окружења
Било би добро да имате следећи софтвер на рачунару.
То је прави Ц++ компајлер, који ће се користити за превођење вашег изворног кода у коначни извршни програм. Већини Ц++ компајлера није важно које проширење дајете свом изворном коду. Најчешће коришћени компајлер је ГНУ Ц/Ц++ компајлер.
Користи га софтвер за куцање. Примери укључују Виндовс Нотепад, ОС Едит, Схорт, Епсилон, ЕМАЦС и Вим или ВИ команде. Датотеке које генеришете помоћу уређивача називају се изворним датотекама, а Ц++ датотеке се називају .цпп, .цп или .ц. Да бисте започели са програмирањем на Ц++-у, мора постојати уређивач текста.
Хајде сада да погледамо шта значе класа, објекат, методе и променљиве инстанце.
ПРИМЕР
|_+_|ОУТПУТ
|_+_|Хајде да погледамо различите делове програма горе поменуте −
Ц++ Басиц Инпут/Оутпут
Ц++ И/О операција користи концепт тока. Ток је низ бајтова или ток података. То чини перформансе брзим.
Ако бајтови теку из главне меморије у уређај као што је штампач, екран или мрежна веза, итд., ово је познато као излазна операција.
Ако бајтови теку са уређаја као што је штампач, екран, мрежна веза итд., у главну меморију, то се назива операција уноса.
Стандардни излазни ток (цоут)
Тхе трошак је унапред дефинисани објекат од оток класа. Повезан је са излазним уређајем, који је обично екран. Цоут се користи за спајање са оператором уметања тока за приказ излаза на конзоли
ПРИМЕР
|_+_|ОУТПУТ
|_+_|Стандардни улазни ток (цин)
Тхе џин је унапред дефинисани објекат. Повезан је са улазним уређајем, који је обично тастатура. цин се користи за придруживање оператору екстракције тока (>>) за читање уноса конзоле.
ПРИМЕР
|_+_|ОУТПУТ
|_+_|Стандардна крајња линија (ендл)
Тхе ендл је унапред дефинисани објекат класе. Користи се за уметање нових знакова линије и испирање тока.
ПРИМЕР
|_+_|ОУТПУТ
|_+_|Ц++ променљиве
Променљива је име меморијске локације. Користи се за чување података. Вредност се може променити и више пута се користи. То је начин да се меморијска локација представи кроз симбол који ће се лако идентификовати. Променљива може имати абецеде, доњу црту и цифре. Име променљиве може да почиње само алфабетом и доњом цртом. Не може да почне цифром.
Нису дозвољени размаци унутар назива променљиве.
Име променљиве не сме да буде резервисана реч или кључна реч, нпр. цхар, флоат, итд.
Важећа имена променљивих:
Неважећа имена променљивих:
Ц++ идентификатори
Ц++ идентификатор се користи за идентификацију променљиве, функције, класе, модула или било које друге ставке коју дефинише корисник. Почиње са А до З или од а до з или доњом цртом (_), коју прати нула или више слова и 0 до 9. Ц++ не дозвољава знакове интерпункције као што су @, $ и % унутар идентификатора. То је програмски језик који разликује велика и мала слова. Дакле, радна снага и радна снага су два различита идентификатора у Ц++.
Ц++ типови података
Тип | Кључне речи |
---|---|
карактер | цхар |
Боолеан | боол |
Флоатинг поинт | пловак |
Двоструки плутајући зарез | дупло |
Интегер | инт |
Без вредности | празнина |
Широк карактер | вцхар_т |
Тип | Типична ширина бита | Типични домет |
цхар | 1бите | -127 до 127 или 0 до 255 |
унсигнед цхар | 1бите | 0 до 255 |
сигнед цхар | 1бите | -127 до 127 |
вцхар_т | 2 или 4 бајта | 1 широк знак |
инт | 4 бајта | -2147483648 до 2147483647 |
унсигнед инт | 4 бајта | 0 до 4294967295 |
потписан инт | 4 бајта | -2147483648 до 2147483647 |
кратки инт | 2битес | -32768 до 32767 |
пловак | 4 бајта | |
непотписан кратки инт | 2битес | 0 до 65,535 |
потписан кратки инт | 2битес | -32768 до 32767 |
лонг инт | 8битес | -2,147,483,648 до 2,147,483,647 |
потписан лонг инт | 8битес | исто што и дуги инт |
унсигнед лонг инт | 8битес | 0 до 4,294,967,295 |
дуго дуго инт | 8битес | -(2^63) до (2^63)-1 |
унсигнед лонг лонг инт | 8битес | 0 до 18,446,744,073,709,551,615 |
дупло | 8битес | |
дугачак дупли | 12битес |
Ц++ константе/литерали
Константе се односе на фиксне вредности које програм може да промени и називају се литерали.
Константе могу бити било ког од необрађених типова података и подељене су на целобројне бројеве, знакове, бројеве са помичним зарезом, низове и логичке вредности.
Интегер Литералс
Целобројни литерал је децимална, октална или хексадецимална константа.
Целобројни литерал има суфикс који је комбинација Л и У, за дуго и без предзнака. Суфикс може бити малим или великим словима и може бити било којим редоследом.
На пример: 212, 215у, 0кФееЛ, 078, 032УУ
Литерали са помичним зарезом
Литерал са помичним зарезом има цео број, разломак, децимални зарез и експонентни део. Литерале са помичним зарезом можете представити у децималном или експоненцијалном облику.
Док представљате помоћу децималног облика, морате укључити децимални зарез, експонент или обоје. Док значи коришћење експоненцијалног облика, морате имати разломачки део, цео број или обоје. Предписани експонент се уводи са Е или е.
Боолеан Литералс
Постоје два логичка литерала
Литерали знакова
Литерали знакова су затворени у једноструким наводницима. Ако литерал почиње са Л, то је литерал широких знакова и требало би да се чува у променљивој типа вцхар_т. Иначе, то је уски карактерни литерал и чува се у једноставној променљивој типа цхар.
Есцапе секвенца | Значење |
\ | карактер |
’ | ‘ лик |
карактера | |
? | ? карактера |
до | Упозорење или звоно |
б | Бацкспаце |
ф | Облик хране |
н | Нова линија |
р | Превоз Повратак |
т | Хоризонтална картица |
в | Вертикална картица |
ооо | Октални број од једне до три цифре |
кхх . . . | Хексадецимални број од једне или више цифара |
Ц++ Класе складиштења
Класа аутоматског складиштења
То је подразумевана класа складиштења за све локалне варијабле.
СИНТАКСА
|_+_|Класа складиштења регистра
Користе се за дефинисање локалних променљивих које се чувају у регистру уместо у РАМ-у. То значи да променљива има максималну величину једнаку величини регистра и да се на њу не може применити оператор '&'.
СИНТАКСА
|_+_|Статичка класа складиштења
Каже компајлеру да задржи локалну променљиву у постојању током програма уместо да је креира и уништи. Дакле, постављање локалних променљивих статичним нуди им да задрже своје вредности између позива функције.
Екстерна класа складиштења
Користи се за давање референце глобалне променљиве која је видљива сваком програмском фајлу. Када користите „ектерн“, променљива се не може иницијализовати.
Променљива класа складиштења
Променљиви спецификација се примењује на објекте класе. Нуди члану објекта да надјача функцију члана цонст. То јест, променљиви члан може бити модификован помоћу функције члана цонст.
Типови Ц++ модификатора
Ц++ нуди типове података цхар, инт и доубле да би им претходили модификатори. Модификатор се користи за промену значења основног типа тако да прецизније одговара потребама различитих ситуација.
Модификатори типа података су наведени у наставку
Модификатори сигнед, унсигнед, лонг и схорт се примењују на целобројне основне типове. Поред тога, сигнед и унсигнед се примењују на цхар, а лонг се примењује на доубле.
Модификатори потписани и непотписани се користе као префикси дугим или кратким модификаторима.
Врсте квалификатора
ПРИМЕР
|_+_|ОУТПУТ
|_+_|Оператори у Ц++
Оператор је симбол који помаже компајлеру да изврши одређене математичке или логичке манипулације. Ц++ има различите уграђене операторе и нуди следеће типове оператора −
Аритметички оператор
Аритметички оператори нису ништа друго до оператори који се користе за извођење аритметичких операција између променљивих или две вредности.
Оператери | Опис | Синтакса |
+ | Додаје два операнда | а+б |
* | Множи два операнда | а*б |
– | Одузима два операнда | а-б |
/ | Дели први операнд другим | а/б |
% | Враћа остатак када се први операнд подели са другим | а%б |
++ | Повећава целобројну вредност за један | а++ |
— | Смањује целобројну вредност за један | до- |
Логички оператор
Логички оператори у Ц++ комбинују тачне или нетачне вредности променљивих тако да можете да откријете њихову резултујућу истиниту вредност.
Оператери | Опис | Синтакса |
Или (||) | Тачно ако је било који од операнада тачан | (А || Б) је тачно. |
И (&&) | Тачно ако су оба операнда тачна | (А && Б) је нетачно. |
Не (!) | Ако је услов тачан, онда ће логички НОТ оператор учинити нетачним. | !(А && Б) је тачно. |
Битвисе оператор
У Ц++ битни оператори изводе битне калкулације на целим бројевима. Битни оператор: враћа 1 ако су оба бита 1, а друго 0. Пример: а = 10 = 1010 (бинарни) б = 4 = 0100 (бинарни а & б = 1010 & 0100 = 0000 = 0 (децимално) Оператор по биту или: враћа 1 ако је било који од бита 1, друго 0.
Оператери | Опис | Синтакса |
>> | Бинарни десни помак к>> | к>> |
<< | Бинарно померање улево | Икс<< |
^ | Бинарни КСОР | к ^ и |
& | Бинарно И | к & и |
| | Бинарно ОР | к | И |
~ | Бинарно НЕ | ~к |
Оператор додељивања
Оператори доделе променљивим додељују вредности. а = 5 је оператор доделе који поставља вредност 5 са десне стране променљивој ан са леве стране.
Оператери | Опис | Синтакса |
= | Додељивање вредности израза десне стране операнду леве стране. | а=б+ц |
+= | Додајте операнд са десне стране са операндом са леве стране, а затим доделите левом операнду. | а+=б а=а+б |
-= | Одузмите десни операнд од левог операнда и затим га доделите левом операнду. | а-=б а=а-б |
/= | Поделите леви операнд са десним операндом, а затим доделите левом операнду. | а/=б а=а/б |
%= | Узмите модул користећи леви и десни операнд и доделите резултат левом операнду. | а%=б а=а%б |
*= | Израчунајте вредност експонента користећи операнде и доделите вредност левом операнду. | а*=б а=а*б |
&= | Изводи битовско И на операнду и додељује вредност левом операнду. | а&=б а=а&б |
|= | Изводи побитно ОР на операнду и додељује вредност левом операнду. | а|=б а=а|б |
^= | Изводи побитно ОР на операнду и додељује вредност левом операнду. | а^=б а=а^б |
>>= | Извршите побитно померање удесно на операнду и доделите вредност левом операнду. | а>>=б а=а>>б |
<<= | Изводи побитно померање улево на операнду и додељује вредност левом операнду. | до<<= b a= a << b |
Релациони оператор
Релациони оператори су оператори који се користе за поређење две вредности или објекта.
Оператери | Опис | Синтакса |
> | Веће од | к > и |
< | Мање од | Икс |
== | Једнако | к == и |
!= | Није једнако | к != и |
>= | Већи или једнак | к >= и |
<= | Мање или једнако | Икс<= y |
Мисц Операторс
Оператер | Опис |
Стање? Кс : И | Ако је услов тачан, онда враћа вредност Кс, иначе враћа вредност И. |
, | То изазива низ операција које треба извршити. Вредност зареза је вредност последњег израза листе одвојеног зарезом. |
величина | Враћа величину променљиве. На пример, сизеоф(а), где је 'а' цео број и вратиће 4. |
* | То је показивач на променљиву. На пример *вар; ће показивати на променљиву вар. |
Цаст | Конвертује један тип података у други. |
. (тачка) и -> (стрелица) | Користе се за упућивање на појединачне чланове класа, структура и синдиката. |
& | Враћа адресу променљиве. |
Ц++ петље
за петљу
Ц++ фор петља се користи за понављање дела програма неколико пута. Ако је број понављања фиксиран, препоручује се употреба петље фор него вхиле или до-вхиле петље.
Ц++ фор петља је иста као Ц/Ц#. Можемо иницијализовати променљиве, проверити услов и повећати/умањити вредност.
СИНТАКСА
|_+_|ПРИМЕР
|_+_|ОУТПУТ
|_+_|Нестед Фор Лооп
У Ц++, можете користити фор петљу унутар друге фор петље. Позната је као угнежђена фор петља. Унутрашња петља се извршава у потпуности када се спољна петља изврши једном. Дакле, ако се спољна петља и унутрашња петља изврше четири пута, унутрашња петља ће се извршити четири пута за сваку спољашњу петљу, односно укупно 16 пута.
ПРИМЕР
|_+_|ОУТПУТ
|_+_|Док петља
У Ц++, вхиле петља се користи за понављање дела програма неколико пута. Ако број итерација није фиксиран, препоручује се употреба вхиле петље, а не фор петље.
СИНТАКСА
|_+_|ПРИМЕР
|_+_|ОУТПУТ
|_+_|Угнежђена док петља
У Ц++, можете користити вхиле петљу унутар друге вхиле петље; позната је као угнежђена вхиле петља. Угнежђена петља вхиле се извршава када се спољна петља изврши једном.
ПРИМЕР
|_+_|ОУТПУТ
|_+_|До-вхиле петља
Ц++ до-вхиле петља се користи за понављање дела програма неколико пута. Ако број итерација није фиксан и морате извршити петљу бар једном, препоручује се употреба до-вхиле петље.
Ц++ до-вхиле петља се извршава најмање једном јер се услов проверава након тела петље.
СИНТАКСА
|_+_|ПРИМЕР
|_+_|ОУТПУТ
|_+_|Угнежђена петља До-Вхиле
У Ц++, ако користите до-вхиле петљу унутар друге до-вхиле петље, то је познато као угнежђена до-вхиле петља. Угнежђена до-вхиле петља се извршава у потпуности за сваку спољну до-вхиле петљу.
ПРИМЕР
|_+_|ОУТПУТ
|_+_|Изјаве о доношењу одлука
Постоје ситуације у стварном животу када треба да донесете неке одлуке, а на основу тих одлука одлучујете шта даље. Слични проблеми се јављају иу програмирању где треба да донесете неке одлуке, а на основу тих одлука извршићете следећи блок кода.
Изјаве за доношење одлука у програмским језицима одлучују о смеру тока извршења програма. Изјаве за доношење одлука доступне у Ц++ су:
ако изјава
ако је изјава једноставна изјава за доношење одлука. Користи се за одлучивање да ли ће блок наредби бити извршен или не. Ако је услов тачан, онда се блок исказа извршава, иначе не.
СИНТАКСА
|_+_|овде, услови након евалуације ће бити или тачно или нетачно. ако исказ прихвата логичке вредности.
ПРИМЕР
|_+_|ОУТПУТ
|_+_|ако иначе изјава
Наредба иф говори да ако је услов тачан, он ће извршити блок наредби, а ако је услов нетачан неће се извршити. Можете користити наредбу елсе са иф наредбом да извршите блок кода када је услов нетачан.
СИНТАКСА
|_+_|ПРИМЕР
|_+_|ОУТПУТ
|_+_|Угнежђене иф изјаве
Угнежђени иф у Ц++ је иф наредба која циља другу иф наредбу. Угнежђене иф наредбе значе да је иф изјава унутар друге иф наредбе. Да, и Ц и Ц++ нам нуде угнежђене иф наредбе унутар иф наредби, тј. можете поставити иф наредбу у другу иф наредбу.
СИНТАКСА
|_+_|ПРИМЕР
|_+_|ОУТПУТ
|_+_|ако-друго-ако мердевине
Корисник може да бира између различитих опција. Наредбе иф се извршавају одозго надоле. Чим услови контролишу да је ако је истинито, онда се наредба повезана са тим извршава, а остатак елсе-иф лествице се прекида. Ако услови нису тачни, онда ће се извршити последњи и коначни исказ.
СИНТАКСА
|_+_|ПРИМЕР
|_+_|ОУТПУТ
|_+_|Јумп Статементс
Пауза
Ова изјава се користи за завршетак петље. Чим се наиђе на наредбу бреак унутар петље, итерације петље се ту заустављају и контрола се одмах враћа на прву наредбу након петље.
СИНТАКСА
Пауза;
Бреак изјаве се користе у ситуацијама када нисмо сигурни у стварни број итерација за петљу или прекидамо петљу на основу неког услова.
ПРИМЕР
|_+_|ОУТПУТ
|_+_|Настави
Наредба цонтинуе је супротна наредби бреак; уместо да прекине петљу, намеће следећу итерацију петље.
Наредба цонтинуе приморава петљу да изврши следећу итерацију. Када се изврши наредба цонтинуе, код унутар петље након наредбе цонтинуе се прескаче и следећа итерација ће почети.
СИНТАКСА
|_+_|ПРИМЕР
|_+_|ОУТПУТ
|_+_|Иди на
Наредба гото у Ц++ се односи на безусловну наредбу скока која се користи за скок са једне тачке на другу унутар функције.
СИНТАКСА
|_+_|ПРИМЕР
|_+_|ОУТПУТ
|_+_|Повратак
Повратак у Ц++ враћа ток извршења функцији. Овој изјави нису потребни никакви условни искази. Када се наредба изврши, ток програма се одмах зауставља и враћа контролу одакле је позван. Наредба ретурн може или не мора ништа да врати за функцију воид, али повратна вредност мора бити враћена за функцију која није воид.
СИНТАКСА
|_+_|ПРИМЕР
|_+_|ОУТПУТ
|_+_|Ц++ функције
Функција се односи на групу исказа која узима улаз, обрађује га и враћа излаз. Циљ функције је да комбинује задатке који се раде изнова и изнова. Ако имате различите уносе, не морате поново да пишете исти код. Можете позвати функцију са другачијим скупом података познатим као параметри.
Ц++ програм има најмање једну функцију, функцију маин().
Дефинисање функције
Дефиниција функције у Ц++-у састоји се од заглавља функције и тела.
ПРИМЕР
|_+_|Декларисање функције
У Ц++, функције морају бити декларисане пре него што се користе. Функцију можете декларисати тако што ћете навести њену повратну вредност, име и типове за њене аргументе. Услови аргумената су опциони. Дефиниција функције се рачуна као декларација функције.
ПРИМЕР
|_+_|Позивање функције
Док креирате Ц++ функцију, ви дефинишете шта функција треба да уради. Да бисте користили функцију, морате је позвати или позвати.
Када програм позове функцију, контрола програма се преноси на позвану функцију. Позвана функција обавља дефинисани задатак и када се изврши њен повратни израз или када се достигне заграда на крају функције, она враћа контролу програма главном програму.
ПРИМЕР
|_+_|Аргументи функције
Ако функција користи аргументе, требало би да декларише променљиве које прихватају вредности аргумената. Ове варијабле су познате као формални параметри функције.
Ц++ бројеви
Обично, када радимо са бројевима, користимо примитивне типове података као што су инт, схорт, лонг, флоат, доубле, итд. Број типова података, њихове могуће вредности и распони бројева објашњени су док се говори о Ц++ типовима података.
ПРИМЕР
|_+_|ОУТПУТ
|_+_|Математички оператори у Ц++
ДА НЕ | Функције | сврха |
једна | двоструки грех (двоструки); | Узима угао (као дупли) и враћа синус. |
два | дупли цос(двоструки); | Узима угао (као дупли) и враћа косинус. |
3 | двоструки тен (двоструки); | Узима угао (као дупли) и враћа тангенту. |
4 | дупли пов(двоструки, дупли); | Први је број који желите да подигнете, а други је снага коју желите да подигнете т |
5 | дупли дневник (двоструки); | Узима број и враћа природни дневник тог броја. |
6 | дупли хипот(двоструки, дупли); | Ако ово пређете дужином две стране правоуглог троугла, вратиће вам се дужина хипотенузе. |
7 | доубле скрт(доубле); | Проследите функцији број и она вам даје квадратни корен. |
8 | инт абс(инт); | Враћа апсолутну вредност целог броја који му се прослеђује. |
9 | дупли спрат (двоструки); | Проналази цео број који је мањи или једнак аргументу који му је прослеђен. |
10 | дупли фабс(двоструки); | Враћа апсолутну вредност било ког децималног броја који му је прослеђен. |
ПРИМЕР
|_+_|ОУТПУТ
|_+_|Ц++ низови
Низ у Ц++ је колекција ставки ускладиштених на суседним меморијским локацијама, а елементима се може приступити насумично коришћењем индекса низа. Користе се за складиштење сличних елемената јер тип података мора бити исти за све елементе. Они могу да складиште примитивне типове података као што су цхар, инт, флоат, доубле, итд. Да би му се додали, низ у Ц++ може да складишти изведене типове података као што су структуре, показивачи, итд. У наставку је дат сликовит приказ низа .
Декларација низа
СИНТАКСА
|_+_|ПРИМЕР
|_+_|овде,
Приступите елементима у низу
Сваки елемент у низу је повезан бројем. Број се назива индекс низа. Можете приступити елементима низа користећи индексе.
СИНТАКСА
|_+_|ПРИМЕР
|_+_|Ево неколико важних концепата Ц++ низова
Ц++ стрингс
То је збирка ликова. Постоје две врсте стрингова који се користе у програмском језику Ц++:
Класа стринг
Ц++ библиотека пружа а низ тип класе који подржава све горе поменуте операције, додатно много више функционалности.
ПРИМЕР
|_+_|ОУТПУТ
|_+_|Ц жице
Овај стринг је настао у језику Ц и подржан је у Ц++. Овај низ је једнодимензионални низ знакова који се завршава нултим карактером „ “. Стога стринг са нултом завршава садржи знакове који чине стринг праћен нулом.
ПРИМЕР
|_+_|ОУТПУТ
|_+_|Неколико функција које манипулишу стринговима са нултим завршетком
Копира стринг с2 у низ с1.
Он спаја стринг с2 на крај низа с1.
Враћа показивач на појаву низа с2 у низу с1.
Враћа дужину низа с1.
Враћа 0 ако су с1 и с2 исти; мање од 0 ако је с1с2.
Враћа показивач на појаву карактера цх у низу с1.
Ц++ показивачи
Показивачи су приказ адреса. Они омогућавају програмима да симулирају позив по референци и да креирају и манипулишу динамичким структурама података.
СИНТАКСА
|_+_|Како користити показивач?
Неколико концепата показивача
ПРИМЕР
|_+_|ОУТПУТ
|_+_|Ц++ Референце
Референтна променљива је име за већ постојећу променљиву. Када се референца иницијализује, име променљиве или референтно име се могу користити за упућивање на променљиву.
ПРИМЕР
|_+_|ОУТПУТ
|_+_|Ц++ датум и време
Ц++ библиотека не пружа одговарајући тип датума. Наслеђује структуре и функције за манипулацију датумом и временом од Ц. Да бисте приступили функцијама и структурама везаним за датум и време, требало би да укључите датотеку заглавља у свој Ц++ програм.
Постоје четири типа везана за време: цлоцк_т, тиме_т, сизе_т и тм. Типови – цлоцк_т, сизе_т и тиме_т могу да представе системско време и датум као неки цео број.
ПРИМЕР
|_+_|Неке важне функције
Враћа тренутно календарско време у неколико секунди које је протекло од 1. јануара 1970. Ако систем нема времена, враћа се .1.
Враћа показивач на низ форме дан месец година сати:минути: секунде.
Враћа показивач на тм структура која представља локално време.
Враћа вредност која је приближна времену покретања позивајућег програма. Вредност од .1 се враћа ако време није доступно.
Враћа показивач на стринг који садржи информације ускладиштене у структури означеној временом конвертованим у форму: дан месец датум сати:минути: секунде
Враћа показивач на време у облику тм структуре.
Враћа календарско време које се налази у структури на коју указује време.
Израчунава разлику у секундама између времена1 и времена2.
Може се користити за форматирање датума и времена у одређеном формату.
Ц++ структуре података
Ц++ низови вам нуде да дефинишете променљиве које комбинују неколико ставки података исте врсте. Ипак, тхе структура је још један кориснички дефинисан тип података који ће вам омогућити да комбинујете ставке података различитих врста. Структуре се користе за представљање записа.
Дефинисање структуре
Да бисте дефинисали структуру, требало би да користите наредбу струцт. Наредба структуре дефинише тип података, са више од једног члана, за програм.
|_+_|Тхе ознака структуре је опционо. На крају дефиниције, пре последње тачке и зарезе, требало би да наведете једну или више структурних променљивих.
Приступ члановима структуре
Да бисте приступили било ком члану структуре, можете користити оператор приступа члану (.) . Оператор приступа члану је кодиран као тачка између имена структурне променљиве и члана структуре којем желимо да приступимо. Користио би а струцт кључна реч за дефинисање променљивих типа структуре.
Структуре као аргументи функције
Структуру можете проследити као аргумент функције на исти начин као што прослеђујете било коју другу променљиву или показивач.
ПРИМЕР
|_+_|ОУТПУТ
|_+_|Ц++ класе и објекти
Све у Ц++ је повезано са класама и објектима, заједно са њиховим атрибутима и методама. На пример: у стварном животу, аутобус је објекат . Аутобус има атрибути , као што су тежина и боја, и методе , као што су погон и кочница.
Атрибути и методе су Променљиве и функције који припадају класи. Они су познати као чланови класе. Класа је кориснички дефинисан тип података који можете користити у програму и ради као конструктор објеката или нацрт за креирање објеката.
Направите класу
Ако желите да креирате класу, морате да користите класа кључна реч:
ПРИМЕР
|_+_|Креирајте објекат
У Ц++, објекат се креира из класе.
Да бисте креирали објекат, потребно је да наведете име класе, а затим име објекта. Да бисте приступили атрибутима класе, користите синтаксу тачке (.) на објекту:
ПРИМЕР
|_+_|Неколико концепата у детаље
Ц++ наследство
Наслеђивање је процес у коме објекат аутоматски стиче сва својства и понашања свог родитељског објекта. Можете модификовати атрибуте и радње које су дефинисане у другим класама.
Класа која наслеђује чланове друге класе позната је као изведена класа, а класа чији су чланови наслеђени је позната као базна класа. Изведена класа је специјализована класа за основну класу.
Врсте наслеђа
'А' је основна класа,
'Б' је изведена класа.



Класа Д наслеђује својства и понашање класе Ц и класе Б као и класе А. Класа Ц, а класа Б наслеђује класу А. Класа А је родитељ за класу Б и класу Ц и класу Д.


Ц++ модификатори приступа
Модификатори приступа се користе за имплементацију суштинског аспекта објектно оријентисаног програмирања познатог као скривање података. Модификатори приступа у класи се користе за додељивање приступа члановима класе. Поставља нека ограничења члановима класе да им спољне функције не приступају директно.
Постоје три типа модификатора приступа који су доступни у Ц++:
Хајде да их детаљно размотримо:
Јавно
Сви чланови класе који су декларисани под публиц спецификацијом доступни су свима. Чланским функцијама које су декларисане као јавне могу приступити и друге класе и функције. Јавним члановима класе може се приступити са било ког места у програму помоћу оператора приступа (.) са објектом те класе.
ПРИМЕР
|_+_|ОУТПУТ
|_+_|Приватно
Функције чланице унутар класе могу приступити само члановима класе који су декларисани као приватни. Не може им директно приступити ниједан објекат или функција ван класе. Само функцијама пријатеља је дозвољен приступ приватним подацима чланова класе.
ПРИМЕР
|_+_|ОУТПУТ
|_+_|Заштићено
Модификатор заштићеног приступа је исти као и модификатор приватног приступа јер му се не може приступити изван своје класе осим ако, уз помоћ класе пријатеља, разлика је у томе што члановима класе који су декларисани као заштићени може приступити било која изведена класа и те класе.
ПРИМЕР
|_+_|ОУТПУТ
|_+_|Преоптерећење Ц++-а
Програмски језик Ц++ вам омогућава да наведете више од једне дефиниције за а функција име или ан оператер у истом обиму, тзв преоптерећење функције и преоптерећење оператера , редом.
Преоптерећена декларација је декларисана истим именом као претходно декларисана декларација у истом опсегу, осим што обе декларације имају различите аргументе и различите дефиниције.
Функција преоптерећења
Преоптерећење функција је функција која вам нуди да имате више од једне функције са истим именом али различитом листом параметара.
ПРИМЕР
|_+_|ОУТПУТ
|_+_|Ц++ полиморфизам
Преоптерећење оператера
Можете учинити да оператори раде за класе које дефинише корисник. То значи да Ц++ може да пружи операторима посебно значење за тип података. Ово је познато као преоптерећење оператера.
ПРИМЕР
|_+_|ОУТПУТ
|_+_|То је важан концепт објектно оријентисаног програмирања. То значи више од једног облика. То јест, исти ентитет се понаша различито у различитим сценаријима.
Функција Оверридинг
Можете имати исту функцију у основној класи као иу изведеним класама. Када позовете функцију користећи објекат изведене класе, функција изведене класе се извршава уместо основне класе.
Према томе, различите функције се извршавају у зависности од објекта који позива функцију. Ово се зове надјачавање функције
ПРИМЕР
|_+_|ОУТПУТ
|_+_|Ц++ виртуелне функције
У Ц++, можда нећете моћи да заобиђете функције ако користимо показивач основне класе да покажемо на објекат изведене класе.
Коришћење виртуелних функција у основној класи осигурава да се функција у овим случајевима може заменити. Дакле, виртуелне функције потпадају под функцију надјачавања.
Чисте виртуелне функције
Могуће је да желите да укључите виртуелну функцију у основну класу тако да може бити редефинисана у изведеној класи како би одговарала објектима те класе, али да не постоји смислена дефиниција коју бисте могли да дате за функцију у основној класи .
ПРИМЕР
|_+_|Ц++ апстракција података
Апстракција података је једна од битних карактеристика објектно оријентисаног програмирања у Ц++. Апстракција значи приказивање само релевантних информација и скривање детаља. Апстракција података се односи на пружање само битних информација о подацима спољашњег света, скривање детаља о позадини или имплементацију.
Апстракција коришћењем класа
Можете имплементирати апстракцију у Ц++ уз помоћ класа. Класа вам помаже да групишете чланове података и функције чланова користећи доступне спецификације приступа. Класа може одлучити који члан података ће бити видљив спољном свету, а који није.
Апстракција коришћењем спецификација приступа
Спецификатори приступа играју виталну улогу у имплементацији апстракције у Ц++. Можете користити спецификације приступа да примените ограничења на чланове класе. На пример:
ПРИМЕР
|_+_|ОУТПУТ
|_+_|Ц++ Енкапсулација података
То је процес комбиновања функција и чланова података у једну јединицу која се зове класа. Ово је да би се спречио директан приступ подацима. Приступ им је обезбеђен преко функција класе. То је једна од популарних карактеристика објектно оријентисаног програмирања која помаже у скривању података.
За спровођење овога
ПРИМЕР
|_+_|ОУТПУТ
|_+_|Ц++ апстрактне класе
Ц++ класа је направљена апстрактном декларисањем једне од њених функција као витална>чиста виртуелна функција. Чиста виртуелна функција се помиње стављањем = 0 у њену декларацију. Изведене класе морају да обезбеде њихову имплементацију.
ПРИМЕР
|_+_|ОУТПУТ
|_+_|Ц++ датотеке и токови
да не | Тип података | Опис |
једна | офстреам | Представља излазни ток датотека и користи се за креирање датотека и записивање информација у датотеке. |
два | ифстреам | Представља улазни ток датотеке и користи се за читање информација из датотека. |
3 | фстреам | Генерално представља ток датотека и има способност и офстреам и ифстреам. |
Отварање датотеке
Датотеку треба отворити пре него што можете да је прочитате или пишете у њу. За отварање датотеке за писање се може користити или фстреам или офстреам објекат. Ифстреам објекат се користи за отварање датотеке само за потребе читања.
да не | Моде Флаг | Опис |
једна | иос::ате | Сав излаз у датотеку ће бити додат на крају. |
два | иос::апп | Отвара датотеку за излаз и помера контролу читања или писања на крај датотеке. |
3 | иос::трунц | Ако датотека већ постоји, садржај ће бити скраћен пре отварања датотеке. |
4 | иос::оут | Отвара се фајл за писање. |
5 | иос::ин | Отвара датотеку за читање. |
СИНТАКСА
|_+_|Затварање датотеке
Када се Ц++ програм укине, он аутоматски испразни све токове, ослободи сву додељену меморију и затвори све датотеке које су отворене.
СИНТАКСА
|_+_|Читање из датотеке
Можете читати информације из датотеке у свој програм користећи оператор екстракције тока (>>). Једина разлика је у томе што користите фстреам или ифстреам објекат уместо цин објекта.
ПРОЧИТАЈ И НАПИШИ ПРИМЕР
|_+_|ОУТПУТ
|_+_|Показивачи позиције датотеке
И остреам и истреам обезбеђују функције члана за репозиционирање показивача на позицију датотеке. Ове функције члана су сеекп за остреам и сеекг за истреам. Аргумент за сеекп и сеекг је дуг цео број. Други аргумент се може поменути да би се назначио правац тражења.
Ц++ Управљање изузецима
Управљање изузецима у Ц++-у је процес за руковање грешкама у току извршавања. Руковање изузетцима обављате тако да се нормалан ток апликације може одржати чак и након грешака у току извршавања.
У Ц++, изузетак је догађај или објекат који се избацује током извршавања. Сви изузеци су изведени из класе стд::екцептион. Ако не обрадимо изузетак, он штампа поруку о изузетку и прекида програм.
Изузеци | Описи |
стд::бад_екцептион | Користи се за руковање неочекиваним изузецима. |
стд::логиц_фаилуре | Може се открити читањем кода. |
стд::бад_типеид | Обично се баца помоћу типеид-а. |
стд::рунтиме_еррор | Не може се открити читањем кода. |
стд::екцептион | То је изузетак и родитељска класа свих стандардних Ц++ изузетака. |
стд::бад_цаст | Обично се баца помоћу динамиц_цаст. |
стд::бад_аллоц | Обично се баца новим. |
Ц++ руковање изузецима заснива се на три кључне речи: покушај да ухватиш, и бацити .
ПРИМЕР
|_+_|Ц++ динамичка меморија
Меморија је подељена на два дела −
Програмери могу да додељују простор за складиштење динамички док је програм покренут. Ипак, програмери не могу да креирају нова имена променљивих, и из тог разлога, динамичка алокација захтева два критеријума:
Деалокација меморије је такође део овог концепта где се чишћење простора врши за друге складиштење података. За де-алоцирање динамичке меморије можете користити оператор делете. Дакле, динамичка алокација меморије се односи на ручно обављање управљања меморијом за динамичку алокацију меморије.
нове и брисање оператора
Овде, тип података може бити било који уграђени тип података који укључује низ, или кориснички дефинисани типови података имају класу или структуру. Почнимо са уграђеним типовима података
СИНТАКСА
|_+_|Када осетите променљиву која није динамички додељена и више није потребна, можете да ослободите меморију у бесплатној продавници помоћу 'избриши' оператер.
СИНТАКСА
|_+_|ПРИМЕР
|_+_|Динамичка алокација меморије низова
Ако сте као програмер; желите да доделите меморију за низ знакова уз помоћ исте синтаксе коју можете да урадите.
ПРИМЕР
|_+_|Простори имена нуде вам да групишете именоване ентитете који имају глобалног обима у уже оквире дајући их опсег именског простора . Ово такође омогућава организовање елемената програма у различите логичке опсеге на које се позивају имена. Именски простор је функција присутна у Ц++ а није присутна у Ц. Дозвољено је више блокова именског простора са истим именом. Све декларације унутар блокова су декларисане у именованом опсегу.
СИНТАКСА
|_+_|ПРИМЕР
|_+_|ОУТПУТ
|_+_|Дисцонтигуоус Намеспацес
Именски простор је дефинисан у неколико делова и именски простор је састављен од збира његових дефинисаних делова. Одвојени делови именског простора су распоређени на више датотека.
СИНТАКСА
|_+_|Угнежђени простори имена
Овде можете дефинисати један простор имена унутар другог простора имена
СИНТАКСА
|_+_|ПРИМЕР
|_+_|Ц++ шаблони
Шаблон је карактеристика Ц++ која вам нуди да пишете генеричке програме. Другим речима, можете креирати једну функцију или класу за рад са различитим типовима података користећи шаблоне. Шаблони се користе у већој бази кода за флексибилност кода и поновну употребу програма.
Ови концепти се користе на два начина:
Шаблони функција
Шаблон функције функционише као нормална функција, са једном кључном разликом.
Један шаблон функције може радити са различитим типовима података, али једна нормална функција може радити са једним скупом типова података.
Обично, ако желите да извршите идентичне операције на више типова података, можете користити преоптерећење функција да бисте креирали функције са декларацијом функције.
Мада, бољи приступ би био коришћење предложака функција јер можете да извршите исти задатак пишући мање и код за одржавање.
ПРИМЕР
|_+_|ОУТПУТ
|_+_|Шаблони разреда
Као и шаблони функција, можете креирати шаблоне класа за операције класа. Обично бисте морали да креирате другу класу за сваки тип података ИЛИ креирате друге променљиве и функције чланова унутар једне класе.
Ово ће непотребно надути вашу базу кода и биће тешко одржавати, јер се промена у једној класи/функцији мора извршити на свим класама/функцијама. Иако шаблони класа олакшавају поновно коришћење истог кода за све типове података.
ПРИМЕР
|_+_|ОУТПУТ
|_+_|Ц++ препроцесори
Директиве препроцесора су редови укључени у код програма којима претходи хеш знак (#). Ове линије нису програмиране изјаве већ директиве за претпроцесор. Препроцесор испитује код пре него што компилација кода почне и решава све директиве пре него што регуларни изрази генеришу било који код.
Препроцесорске директиве се протежу кроз једну линију кода. Чим се пронађе знак новог реда, препроцесорска директива се завршава.
Постоје 4 главна типа предпроцесорских директива:
макро
Макрои су део кода који има неко име. Кад год компајлер наиђе на ово име, замењује име стварним делом кода. Директива „#дефине“ се користи за дефинисање макроа.
ПРИМЕР
|_+_|ОУТПУТ
|_+_|Унапред дефинисани Ц++ макрои
Садржи број реда програма када се програм компајлира.
Садржи тренутно име датотеке програма када се компајлира.
Садржи стринг који је датум превода изворне датотеке у објектни код.
Садржи низ сат:минута: секунда, што је време у којем је програм компајлиран.
Укључивање датотеке
Ова директива препроцесора говори компајлеру да укључи датотеку у програм. Постоје две врсте датотека које корисник задржава у програму:
Условна компилација
Помаже да се компајлира одређени део програма или да се прескочи компилација неког одређеног дела програма на основу неких услова.
СИНТАКСА
|_+_|Друге директиве
Поред горе поменутих директива, овде су још две директиве које се обично не користе. Су:
Ц++ Руковање сигналима
Сигнали су прекиди које оперативни систем даје процесу који ће прерано завршити програм. Притиском на Цтрл+Ц на УНИКС-у, ЛИНУКС , Мац ОС Кс или Виндовс машина, можете креирати прекиде.
Постоје сигнали које софтвер не може да открије, али постоји листа сигнала које можете ухватити у свом програму и предузети прихватљиве радње засноване на сигналу. Ц++ датотека заглавља описује ове сигнале.
да не | Сигнал | Опис |
једна | СИГФПЕ | Погрешна аритметичка операција, као што је прекид нуле или операција преливања. |
два | СИГАБРТ | Ненормалан прекид програма, као што је позив за прекид. |
3 | СИГИНТ | Пријем сигнала интерактивног фокуса |
4 | СЕАЛ | Откривање нелегитимног упутства. |
5 | СИГТЕРМ | Поднео захтев за прекид програма. |
6 | СИГСЕГВ | Неважећи приступ диску. |
Функција сигнал().
Ц++ библиотека за руковање сигналима укључује функцију сигнала за хватање непредвидивих догађаја.
СИНТАКСА
|_+_|ПРИМЕР
|_+_|ОУТПУТ
|_+_|Функција раисе().
Са функцијом раисе(), која узима цео број сигнала као аргумент, можете произвести сигнале.
СИНТАКСА
|_+_|ПРИМЕР
|_+_|ОУТПУТ
|_+_|Мултитхреадинг је специјализована врста мултитаскинга, а функција која омогућава вашој машини да истовремено покреће два или више програма је функција за више задатака. Уопштено говорећи, постоје два типа мултитаскинга: засновани на процесу и на нитима. Паралелно извршавање програма обавља се мултитаскингом заснованим на процесу. Мултитаскинг заснован на нитима бави се паралелним извршавањем делова истог програма. Постоје две или три компоненте програма са више нити које ће се покретати истовремено.
СИНТАКСА
|_+_|ДА НЕ | Параметар | Опис |
једна | љут | Једна изјава која се може проследити на рутински почетак. Мора се пренети као показивач типа воид за поређење. НУЛЛ се може користити када нема аргумента за померање. |
два | конац | Непрозиран, специјални идентификатор за тренутну нит коју потпрограм враћа. |
3 | аттр | Атрибут невидљивог објекта који се може користити за постављање атрибута нити. Можете дефинисати објекат са својствима нити или НУЛЛ са подразумеваним вредностима. |
4 | старт_роутине | Ц++ рутина која се једном успостави, нит ће се извршити. |
Нити се завршавају
Користимо следећу рутину да прекинемо ПОСИКС нит:
|_+_|Овде се птхреад излаз користи за директан излазак из нити. Обично, када нит заврши свој посао и више није потребна за функционисање, птхреад екит() рутина се именује.
Ако се маин() заврши и изађе са птхреад екит() пре нити које производи, друге нити могу да почну да раде. У супротном, како се маин() заврши, они се одмах прекидају
Уношење и одвајање нити
Прате се две рутине које можемо да користимо за унос или уклањање нити.
|_+_|Потпрограм птхреад јоин() блокира нит која позива све док се нит „тхреадид“ не прекине. Један од његових атрибута одређује да ли се може спојити или одвојити када се формира нит. Њему се могу придружити само нити које су генерисане као придружене. Никада се не може спојити ако се нит формира као одвојена.
Ц++ веб програмирање
А шта је ЦГИ?
Збирка смерница које описују како се информације деле између веб сервера и прилагођене скрипте је типични интерфејс мрежног пролаза или ЦГИ. За спољне системе мрежног пролаза, Генерички интерфејс мрежног пролаза, или ЦГИ, је стандард за повезивање са информационим серверима као што су ХТТП сервери. ЦГИ/1.1 је најновија верзија, а ЦГИ/1.2 је у развоју.
Претраживање на Интернету
Хајде да видимо шта се дешава када притиснемо хипервезу да бисмо прегледали одређену веб страницу или УРЛ да бисмо разумели концепт ЦГИ. Ваш претраживач контактира ХТТП веб сервер и захтева УРЛ, тј. Име датотеке према имену датотеке. Веб сервер анализира УРЛ и тражи назив датотеке. Ако је тражена датотека лоцирана, веб сервер ће пренети датотеку назад у претраживач, у супротном ће послати поруку о грешци која каже да сте затражили неважећу датотеку.
Популарни мрежни интерфејс (ЦГИ) је основни протокол који омогућава апликацијама да комуницирају са веб серверима и са клијентима. Могуће је писати ове ЦГИ програме у Питхон, ПЕРЛ, Схелл, Ц или Ц++ итд.
ПРИМЕР
|_+_|Конфигурација веб сервера
Уверите се да веб сервер прихвата ЦГИ пре него што наставите са ЦГИ програмирањем и да је дизајниран да прихвати ЦГИ програме. Многи ЦГИ програми које ХТТП сервер покреће налазе се у унапред конфигурисаном директоријуму. Овај директоријум се зове ЦГИ директоријум и по конвенцији се зове /вар/ввв/цги-бин. ЦГИ датотеке ће по конвенцији имати екстензије као .цги, иако су извршне са Ц++.
ХТТП заглавља
Конфигуришите колачић који пролази кроз стринг.
Датум последњег ажурирања ресурса.
Дужина враћених података у бајтовима. Да би пријавио приближно време учитавања датотеке, претраживач користи ову вредност.
МИМЕ стринг који специфицира формат стринга
УРЛ који треба да се врати, а не тражени УРЛ. Ова датотека ће се користити за преусмеравање захтева на другу датотеку.
Дан када су подаци постали бескорисни. Прегледач би требало да користи ово да одлучи да ли веб локација треба да се освежи.
Променљиве окружења
ГЕТ и ПОСТ методе
Када покушате да пренесете било какве детаље из вашег претраживача на веб сервер и на крају у вашу ЦГИ апликацију, морате наићи на одређене сценарије. Прегледач најчешће користи два приступа за пренос ових информација на веб сервер. Ти приступи су ГЕТ метода и ПОСТ метода.
УРЛ ПРИМЕР ГЕТ Метод
|_+_|Коришћење колачића
ХТТП протокол је протокол који нема држављанство. Али важно је да комерцијална веб локација задржи податке о сесији између различитих сајтова. Једна регистрација корисника, на пример, завршава се након што се заврши неколико страница. Али како задржати детаље сесије за корисника на свим веб локацијама. Најпоузданији начин за памћење и праћење интересовања, продаје, провизија и других детаља потребних за побољшање искуства посетилаца или статистике сајта је коришћење колачића у одређеним случајевима.
У облику колачића, ваш сервер преноси неке податке у прозор посетиоца. Колачић ће одобрити претраживач. Ако јесте, чува се на хард диску посетиоца као архива обичног текста. Сада је колачић спреман за опоравак када корисник посети другу страницу на вашем вебу. Када се опорави, сервер зна/памти оно што је сачувано.
Пример отпремања датотеке
|_+_|Закључак
Овим долазимо до краја овог упутства за Ц++. Надам се да вам је ово помогло да разумете основе Ц++ програмирања.