static c
Значение и използване на статиката в C ++ с примери.
В предишните ни теми за класове за съхранение се запознахме с думата static. Научихме за статичните променливи, които са декларирани в програма C ++. Знаем, че статичните променливи се инициализират само веднъж и те запазват стойността в цялата програма.
Подобно на статичните променливи, в този урок ще разширим използването на статична ключова дума до:
- Статични променливи членове в клас
- Обекти от статичен клас
- Клас на статичните методи
=> Проверете тук уроците за задълбочено обучение за 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
В основната функция създаваме три различни обекта. В изхода виждаме, че стойността на статичната променлива се поддържа между обектните творения и не се нулира при всяко създаване на обект. Това за първия обект, count = 0. След това се увеличава до 1. За следващия обект count = 1 и т.н.
Ако броят беше някаква обикновена променлива, тогава изходът щеше да бъде:
Брой = 0
Брой = 0
Брой = 0
Обекти на статичен клас
Подобно на статичните променливи-членове на класа, ние можем да декларираме обектите на класа като статични. Обектите от статичен клас също се инициализират само веднъж и остават активни в цялата програма. Тъй като обектът е дефиниран от потребителя, обектът от статичен клас се инициализира подобно на обикновените обекти с помощта на конструктор.
най-добрият софтуер за наблюдение на процесора и процесора
Нека вземем пример за програмиране, за да разберем по-добре статичните обекти от клас.
#include using namespace std; class xyz { int i; public: xyz() { i=0; cout << 'Constructor::xyz'<В тази програма имаме клас xyz с конструктор и деструктор. В основната функция декларираме променлива x = 0; Ако x е равно на нула, ние създаваме статичен обект от клас xyz.
Програмата дава следния изход.
Изход:
Конструктор :: xyz
Край на главния
Деструктор :: xyz
Обикновено изходът трябваше да бъде
Конструктор :: xyz
Деструктор :: xyz
Край на главния
Но докато създаваме статичен обект, този обект има обхват до края на програмата, а не когато обектът излезе извън обхвата (край на оператора if). Това е причината, поради която деструкторът за обект obj се изпълнява само след достигане на края на основната функция.
Статични методи в клас
Можем да имаме и статични методи в клас. Подобно на статичните обекти и статичните променливи на членове, функциите на статичните членове също имат обхват, докато изпълнението на програмата приключи.
Когато методът на класа е обявен за статичен, той може да има достъп само до статични членове, т.е. статични променливи и статични функции на класа. Той няма достъп до обикновените членове на класа.
Освен това няма наличен указател „this“ за статични методи от клас.
можете ли да използвате всякакви слушалки vr за ps4
Разрешено ни е да използваме обекта и точковия оператор за достъп до статичните методи на клас, но се препоръчва да използваме името на класа и оператора за разделителна способност за достъп до тези методи.
По-долу е даден пример за използване на статичен метод в клас.
В този пример дефинирахме две статични променливи членове A и B и статичен метод printValues. Променливите A и B се инициализират съответно на стойности 10 и 20. В статичния метод printValues стойностите на A и B преминават съответно след Increment и pre Increment. След това стойностите се отпечатват.
В основния метод директно извикваме статичния метод printValues, като използваме името на класа, тъй като не се нуждаем от обект за извикване на статичните функции.
#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; }
Изход:
Стойност на A: 11
Стойност на B: 21
Екранната снимка на същия резултат е дадена по-долу.

Така че в изхода виждаме стойностите на двете статични променливи да се променят според операциите, извършени върху тях.
Предназначение на статичните функции
След като видяхме различните употреби на ключова дума static в този урок, остава въпрос каква е целта на статичните функции.
Целта на статичните функции може да бъде обобщена по-долу:
- Използваме статични функции, когато тази функция не зависи от обекта за извикване и работа.
- Още една цел на използването на статична функция е да се ограничи нейното използване. За разлика от глобалните функции, достъпът до статични функции е ограничен до файла, в който са поставени. По този начин, за да ограничим достъпа до функцията, ние го правим статичен.
- Освен горните две причини, ние използваме статични функции, когато не искаме да създаваме обект от клас, само за да изпълним функция, която не се отнася до членове на класа.
Заключение
В заключение на тази тема можем да кажем, че статичната ключова дума в C ++ може да се използва по различни начини за деклариране на променливи, променливи на членове, обекти на класове, методи и т.н.
Статичните функции и променливи членове не трябва да бъдат достъпни с обекта, а могат да бъдат директно достъпни с помощта на името на класа. Също така обхватът на статичните обекти остава по време на изпълнението на програмата. Следователно статичната ключова дума може да се използва и за контрол на достъпа на даден обект.
В предстоящите ни уроци ще научим повече за няколко други OOP теми в C ++.
=> Проверете тук, за да видите A-Z на C ++ уроци за обучение тук.
Препоръчително четене
- Подигравка на частни, статични и невалидни методи с помощта на Mockito
- Статично тестване и динамично тестване - Разлика между тези две важни техники за тестване
- ТОП 40 инструмента за анализ на статичен код (Най-добрите инструменти за анализ на изходния код)
- Най-добрият БЕЗПЛАТЕН урок за C #: Най-доброто ръководство за C # за начинаещи
- Параметризиране на статични стойности в LoadRunner
- Променливи на Python
- Видове наследяване в C ++
- Променливи в C ++