Перейти к содержанию
    

WinAVR и адрес статической функции

На мой взгляд, эта цитата не о том, что это две разные семантические конструкции. А только лишь о том, что на инициализацию статической константной переменной-члена внутри объявления класса накладываются некоторые дополнительные ограничения.

В С++ статические члены-данные должны быть объявлены вне определения класса - именно в этот момент под них выделяется память. Объявление такой переменной внутри класса - это просто помещение её в пространство имён этого класса. Поэтому инициализация тут не катит - ведь объекта самой этой статической переменной физически при объявлении объекта класса не создаётся, поэтому и инициализировать там нечего. А для констант такое допускается по той причине, что они (константы) имеют по умолчанию внутреннее связывание и память под них вообще как правило не выделяется - получается чисто конструкция времени компиляции - типизированный литерал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...