static c
тестирање од краја до краја у односу на тестирање регресије
Значај и употреба статичког у Ц ++ са примерима.
У нашим претходним темама о часовима складиштења, упознали смо се са речју статиц. Сазнали смо о статичким променљивим које су декларисане у програму Ц ++. Знамо да се статичке променљиве иницијализују само једном и задржавају вредност током целог програма.
Слично статичким променљивим, и у овом упутству ћемо проширити употребу статичке кључне речи на:
- Статичке променљиве члана у класи
- Објекти статичке класе
- Класа статичких метода
=> Проверите овде детаљне туторијале за обуку за Ц ++.
Шта ћете научити:
- Статичке променљиве члана у класи
- Објекти статичке класе
- Статичке методе у класи
- Сврха статичких функција
- Закључак
- Препоручено читање
Статичке променљиве члана у класи
Статичка променљива се никада не додељује на стеку. Додељен им је простор на различитим статичким складиштима. То значи да када декларишемо статичку променљиву у класи, ову променљиву деле сви објекти те класе.
Како се статичке променљиве иницијализују само једном и деле их сви објекти класе, тако конструктор никада не покреће статичке променљиве. Уместо тога, статичку променљиву треба експлицитно иницијализовати изван класе само једном користећи оператор резолуције опсега (: :).
Када се креира први објекат, сви статички подаци примитивног типа иницијализују се на нулу када ниједна друга иницијализација није присутна.
Проверите следећи пример који приказује статичку променљиву у класи.
Као што је приказано у доњем коду, имамо статичку променљиву цоунт као члана узорка класе. Имајте на уму да смо ову променљиву експлицитно иницијализовали изван класе са почетном вредношћу = 0;
Затим повећавамо ову статичку променљиву у конструктору класе.
Погледајмо пример програма.
#include #include using namespace std; class sample{ int var; static int count; public: sample(int var):var(var){ cout<<'Count = '< Излаз:
Бројање = 0
Бројање = 1
Бројање = 2
У главној функцији креирамо три различита објекта. У излазу видимо да се вредност статичке променљиве одржава између креација објекта и да се не ресетује при свакој креацији објекта. Ово је за први објекат, цоунт = 0. Затим се повећава на 1. За следећи објект цоунт = 1 и тако даље.
Да је бројање било која уобичајена променљива, онда би излаз био:
Бројање = 0
Бројање = 0
Бројање = 0
Објекти статичке класе
Баш као и статичке променљиве члана класе, и објекте класе можемо прогласити статичким. Објекти статичке класе се такође иницијализују само једном и остају активни током целог програма. Како је објекат кориснички дефинисан тип, статични објект класе се иницијализује слично обичним објектима помоћу конструктора.
Узмимо пример програмирања да бисмо боље разумели статичне објекте класе.
#include using namespace std; class xyz { int i; public: xyz() { i=0; cout << 'Constructor::xyz'<У овом програму имамо класу киз са конструктором и деструктором. У главној функцији декларишемо променљиву к = 0; Ако је к једнако нули, креирамо статички објекат класе киз.
Програм даје следеће резултате.
Излаз:
топ ц ++ питања за интервју
Конструктор :: киз
Енд Маин
Деструцтор :: киз
Обично је излаз требао бити
Конструктор :: киз
Деструцтор :: киз
Енд Маин
Али како креирамо статички објекат, овај објекат има опсег до краја програма, а не када објекат излази из опсега (крај иф наредбе). То је разлог због којег се деструктор за објект обј извршава тек након што се постигне крај главне функције.
Статичке методе у класи
Такође у класи можемо имати статичке методе. Баш као и статични објекти и променљиве статичких чланова, и функције статичких чланова имају опсег док се извршавање програма не заврши.
Када се метода класе прогласи статичном, она може приступити само статичким члановима, тј. Статичким променљивим и статичким функцијама класе. Не може приступити обичним члановима разреда.
Такође, не постоји показивач „тхис“ за методе статичке класе.
најбољи сервер за играње на вау
Дозвољено нам је да користимо објекат и тачкасти оператор за приступ статичким методама класе, али за приступ овим методама препоручује се коришћење назива класе и оператора резолуције опсега.
Испод је пример употребе статичке методе у класи.
У овом примеру смо дефинисали две статичке променљиве члана А и Б и статичку методу принтВалуес. Променљиве А и Б су иницијализоване на вредности 10 односно 20. У статичкој методи принтВалуес, вредности А и Б подлежу пост-инкременту и пре-инкременту. Након тога се вредности штампају.
У главној методи ми директно називамо статичку методу принтВалуес користећи име класе јер нам није потребан ниједан објекат за позивање статичких функција.
#include using namespace std; class Sample { static int A; static int B; public: static void printValues(){ A++; ++B; cout <<'Value of A: ' << A << endl; cout <<'Value of B: ' << B << endl; } }; int Sample :: A =10; int Sample :: B =20; int main(){ Sample::printValues(); return 0; }
Излаз:
Вредност А: 11
Вредност Б: 21
Снимак екрана истог излаза дат је у наставку.

Дакле, у излазу видимо да су вредности обе статичке променљиве промењене према операцијама извршеним на њима.
Сврха статичких функција
Пошто смо видели разне употребе кључне речи статиц у овом упутству, остаје питање која је сврха статичких функција.
Сврха статичких функција може се сажети како следи:
- Ми користимо статичке функције када та функција не зависи од објекта за позивање и рад.
- Још једна сврха употребе статичке функције је ограничавање њене употребе. За разлику од глобалних функција, приступ статичким функцијама ограничен је на датотеку у коју су смештене. Стога, да бисмо ограничили приступ функцији, чинимо је статичном.
- Поред горе наведена два разлога, ми користимо статичке функције када не желимо да креирамо објекат класе само да бисмо извршили функцију која се не односи на чланове класе.
Закључак
Да закључимо ову тему, можемо рећи да се статична кључна реч у Ц ++-у може на различите начине користити за декларисање променљивих, променљивих чланова, објеката класе, метода итд.
Статичким функцијама и променљивим члановима не треба приступити са објектом, већ им се може директно приступити помоћу имена класе. Такође, опсег статичких ентитета остаје током читавог извођења програма. Отуда се статична кључна реч такође може користити за контролу приступа одређеног ентитета.
У нашим предстојећим водичима сазнаћемо више о неколико других ООП тема у Ц ++-у.
=> Погледајте овде да бисте видели А-З од Ц ++ туторијала за обуку овде.
Препоручено читање
- Ругање приватним, статичким и празним методама помоћу Моцкито-а
- Статичко испитивање и динамичко испитивање - разлика између ове две важне технике испитивања
- ТОП 40 алата за анализу статичког кода (најбољи алати за анализу изворног кода)
- Најбољи БЕСПЛАТНИ водичи за Ц #: Крајњи водич за Ц # за почетнике
- Параметрирање статичких вредности у ЛоадРуннер-у
- Питхон променљиве
- Врсте наслеђивања у Ц ++
- Променљиве у Ц ++