Переменные-члены - Большая Энциклопедия Нефти и Газа, статья, страница 3
Нет ничего быстрее скорости света. Чтобы доказать это себе, попробуй открыть дверцу холодильника быстрее, чем в нем зажжется свет. Законы Мерфи (еще...)

Переменные-члены

Cтраница 3


Если я объявляю объект класса, хранящийся в стеке, а этот объект, в свою очередь, имеет переменные-члены, хранящиеся в области динамического обмена, то какие части объекта будут находиться в стеке, а какие - в области динамического обмена.  [31]

Переменные-члены, известные также как данные-члены, принадлежат только своему классу. Переменные-члены - это такие же составные части класса, как колеса и мотор - составные части автомобиля.  [32]

Функции, определенные внутри класса, называются функциями-членами или методами класса. В этом примере переменные-члены - Left, Top, Right и Bottom, а функция-член - Draw. Обратите внимание: функция-член может содержать ссылку на любую переменную класса, не используя при этом специальный синтаксис.  [33]

В этом случае переменные-члены могут быть определены следующим образом.  [34]

Конструктор без параметров называют конструктором по умолчанию. Такой конструктор обычно инициализирует переменные-члены, присваивая им стандартные, установленные по умолчанию значения.  [35]

Выражение: public CRectangle обозначает класс CBlock как производный от CRectangle. Класс CBlock наследует все переменные-члены и функции CRectangle. Другими словами, несмотря на то, что определение класса CBlock является пустым, он уже содержит функции GetCoord, SetCoord и Draw, а также переменные Left, Top, Right и Bottom, определенные в классе CRectangle. При этом CRectangle называют базовым, а класс CBlock - производным классами.  [36]

В Delphi конструктор инициализирует переменные-члены, переводя тем самым экземпляр объекта в заведомо корректное состояние. Однако конструктор не выполняет каких-либо выделений памяти. Поэтому часто приходится видеть, что конструктор выполняет все необходимые присвоения, а затем обращается к конструктору базового класса. В некоторых случаях вы можете вообще не обращаться к конструктору базового класса, и эта ситуация является вполне допустимой. NET такой подход является неприемлемым. В вашем собственном конструкторе вы обязаны обратиться к конструктору базового класса ( inherited Create), причем обращение к этому конструктору должно быть самым первым исполняемым выражением вашего конструктора. В настоящее время, если вы не обеспечиваете подобного обращения, компилятор выдает сообщение об ошибке, в котором указывается, что ссылка Self не инициализирована и что перед обращением к любым полям предка необходимо обратиться к конструктору базового класса.  [37]

Иерархическая структура нашего мира берет свое начало неизвестно откуда, но наша конкретная программа начинается с класса Mammal. В связи с этим некоторые переменные-члены, которые необходимы для работы базового класса, должны быть представлены в объявлении этого класса. Например, все животные независимо от вида и породы имеют возраст и вес.  [38]

Класс - это нечто похожее на структуру в языке С. Однако он может содержать и переменные-члены ( или поля), и функции ( известные как функции-члены или методы класса), которые оперируют переменными-членами.  [39]

Источник проблемы заключается в аргументах функции. Аргументы х и у скроют закрытые переменные-члены х и у, объявленные в классе Рапе, поэтому вместо присвоения значений аргументов переменным-членам произойдет присвоение этих значений самим себе.  [40]

Инициализация переменных внутри определения класса бессмысленна, потому что определение класса задает всего лишь тип каждой из переменных-членов, но не резервирует для них реальную область памяти. Скорее всего, при написании программы требуется инициализировать переменные-члены каждый раз при описании экземпляра класса. Следовательно, целесообразно инициализировать переменные внутри конструктора класса. Конструктор класса CRectangle инициализирует переменные-члены, используя выражение присваивания. Однако определенным типам данных, в частности, константам и ссылкам, не могут быть присвоены значения. Чтобы эта проблема не возникала, в языке C предусмотрено специальное свойство конструктора, называемое списком инициализации, который позволяет инициализировать одну или более переменных, а не присваивать им значения.  [41]

Большинство переменных может быть задано на любом из этих этапов: как во время инициализации, так и во время выполнения конструктора. Но логически правильнее, а зачастую и эффективнее, инициализировать переменные-члены во время инициализации конструктора.  [42]

Поскольку обычная функция-член может изменить значение одной или нескольких переменных-членов, компилятор не позволяет вызвать функцию-член объекта типа const. Компилятор не имеет возможности проверить, модифицирует ли в действительности метод класса переменные-члены, так как реализация функции может находиться в отдельном файле исходного кода.  [43]

Как и модальное диалоговое окно, немодальное создают, используя редактор диалоговых окон Developer Studio. Чтобы породить класс для управления немодальным диалоговым окном от класса CDialog и определить переменные-члены и обработчики сообщений, используют мастер ClassWizard, как и для модального диалогового окна.  [44]

Копировщик, заданный компилятором по умолчанию, просто копирует все переменные-члены из указанного в параметре объекта в переменные-члены нового объекта. Такое копирование называется поверхностным; и, хотя оно подходит для большинства случаев, могут возникнуть серьезные проблемы, если переменные-члены окажутся указателями на ячейки динамической памяти.  [45]



Страницы:      1    2    3    4