Являются ли статические члены данных и статические методы класса в C ++ статическими объектами?

С прагматики языка программирования, Скотт

Время жизни объекта обычно соответствует одному из трех основных
Механизмы выделения памяти, используемые для управления пространством объекта:

  1. Статическим объектам присваивается абсолютный адрес, который сохраняется на протяжении всего выполнения программы.

  2. Стековые объекты распределяются и освобождаются в порядке «последний пришел — первый вышел», обычно в сочетании с вызовами и возвратами подпрограмм.

  3. Объекты кучи могут быть выделены и освобождены в произвольные моменты времени. Они требуют более общего (и дорогого) управления хранением
    алгоритм.

Являются ли статические члены данных и статические методы класса в
C ++ статические объекты в книге PLP?

Выделено ли хранилище для статических членов данных и статических методов класса во время компиляции или во время выполнения?

Где они расположены?

Благодарю.

0

Решение

Являются ли статические члены данных и статические методы класса в C ++ статическими объектами в книге PLP?

Статические данные членов, да. И статические объекты внутри функций тоже да. Также объекты объявлены в области видимости файла.

Выделено ли хранилище для статических членов данных и статических методов класса во время компиляции или во время выполнения?

Если под распределением вы имеете в виду выделение памяти, их объем памяти зарезервирован во время компиляции, и пространство фактически выделяется в пространстве процесса компоновщиком во время соединения (или динамическим загрузчиком во время загрузки). В любом случае, задолго до запуска.

Однако статические объекты, объявленные в области видимости файла или класса, инициализируется во время выполнения, до вызова функции main ().

Статические объекты, определенные в функциях, различны. Они инициализируются при первом прохождении кода по ним.

Где они расположены?

Везде, где решает компоновщик или загрузчик. На это может повлиять написание собственного сценария компоновщика (боюсь, за рамками этого ответа).

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]