Будьте осторожны с этими двумя людьми
новые друзья и старые враги — Кабир
Что такое статическое ключевое слово в C ++?
Ключевое слово static может применяться к локальным переменным, функциям, членам класса и объектам в C ++. Статические локальные переменные сохраняют свои значения между вызовом функции и инициализируются только один раз. Статическая функция может быть вызвана напрямую с помощью оператора разрешения области действия, которому предшествует имя класса (см. это , это и это для более подробной информации) C ++ также поддерживает статические объекты.
Что такое статические объекты в C ++?
Объект становится статическим, когда в его объявлении используется ключевое слово static. Смотрите следующие два утверждения, например, в C ++.
Test t; // Stack based object static Test t1; // Static object
Первый оператор, когда выполняется, создает объект в стеке, означает, что память размещена в стеке. Объекты на основе стека также называются автоматическими объектами или локальными объектами. Статический объект инициализируется только один раз и действует до завершения программы. Локальный объект создается каждый раз, когда его объявление встречается при выполнении программы.
статические объекты размещаются в хранилище статических хранилищ. статический объект уничтожается при завершении программы. C ++ поддерживает как локальный статический объект, так и глобальный статический объект
Ниже приведен пример, демонстрирующий использование локального статического объекта.
|
Выход:
main() starts Constructor is executed main() terminates Destructor is executed
Если мы внимательно наблюдаем за выводом этой программы, мы видим, что деструктор для локального объекта с именем obj не вызывается после того, как его конструктор выполнен, потому что локальный объект является статическим, поэтому у него есть область действия до времени жизни программы, поэтому его деструктор будет вызывается, когда main () завершается.
Что происходит, когда мы удаляем статическое в вышеуказанной программе?
В качестве эксперимента, если мы удалим ключевое слово static из глобальной функции myfunc (), мы получим вывод, как показано ниже:
main() starts Constructor is called Destructor is called main() terminates
Это потому, что объект теперь является объектом, основанным на стеке, и он уничтожается, когда выходит из области видимости и вызывается его деструктор.
Как насчет глобальных статических объектов?
Следующая программа демонстрирует использование глобального статического объекта.
|
Выход:
Constructor is executed main() starts 10 main() terminates Destructor is executed
Эта статья предоставлена Meet Pravasi . Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме
Рекомендуемые посты:
- Подсчитайте количество объектов, используя функцию-член Static
- Понимание static в public static void main в Java
- Разница между статическим и нестатическим методом в Java
- Разница между статическими и нестатическими переменными в Java
- Внутренняя статическая переменная и внешняя статическая переменная с примерами в C
- Статическое ключевое слово в C ++
- Статические переменные в C
- Статические функции в C
- Статический импорт в Java
- Инициализировать статическую карту с помощью Java 9 Map.of ()
- C ++ | Статическое ключевое слово | Вопрос 4
- C ++ | Статическое ключевое слово | Вопрос 3
- C ++ | Статическое ключевое слово | вопрос 2
- C ++ | Статическое ключевое слово | Вопрос 1
- C ++ | Статическое ключевое слово | Вопрос 5
0.00 (0%) 0 votes