Метод является встроенным (inline), если его тело определено внутри класса.
Тело inline-метода (inline-функции) подставляется в каждую точку вызова, вместо того, чтобы генерировать код вызова. Как правило, встроенными делают короткие методы. Большие методы реализуются обычным способом.
Есть два способа создания inline-метода:
– с использованием директивы inline;
– включением кода метода внутри объявления класса.
С помощью директивы inline (как и для обычных функций, директива имеет рекомендательный характер) методы можно определять как встроенные и вне класса.
Общий вид объявления inline-метода:
inline объявление_метода
Модификатор inline предшествует всем частям объявления функции.
Например:
inline int monstr::get_ammo()
{return ammo;}
inline не является командой. Технически inline – это запрос к компилятору сгенерировать подставляемый код.
8.Описание объектов вC++ ? Формы создания объектов класса?
Конкретные представители класса называются объектами илиэкземплярами класса.
В C++ объект – это переменная типа class.
Поведение объекта ассоциируется с классом, т. е. все экземпляры класса воспринимают одни и те же команды и выполняют их сходным образом. Состояние объекта при этом остается индивидуальным, т. е. все объекты могут выполнять одни и те же действия, но используют различные данные.
Для обозначения внутренних переменных, содержащихся в экземпляре класса, используется термин "переменная экземпляра". Каждый экземпляр имеет свою собственную совокупность переменных. Эти значения не должны изменяться клиентами напрямую, а только с помощью методов, ассоциированных с классами, т. е. объект является комбинацией состояния и поведения. Состояние описывается переменными экземпляра, а поведение характеризуется методами. Снаружи клиент может узнать только о поведении объектов. Изнутри доступна полная информация о том, как методы обеспечивают необходимое поведение, изменяют состояние и взаимодействуют с другими объектами.
Создание новых объектов называется порождением класса.
Порождение класса может рассматриваться как разновидность объявления переменных. Различие между этими понятиями отчасти маскируется тем, что в языках с контролем типов данных (например, С++) определение, порождающее переменную, выглядит так же, как и чистое объявление.
Общая форма создания объекта:
имя_класса объект;
Объекты могут быть созданы в следующих формах:
– глобальные объекты – создаются в начале выполняемой программы и разрушаются при ее завершении;
– локальные (автоматические) объекты – создаются, когда объекты объявляются как некоторые локальные переменные в блоке (например, в функции) и разрушаются, когда блок программы, в котором они были объявлены, разрушается или удаляется из памяти;
– статические объекты – создаются один раз при запуске программы, к которой они относятся, и разрушаются тоже один раз при завершении выполнения программы;
– объекты в динамически выделяемой области памяти – создаются при выделении памяти и разрушаются при освобождении памяти;
– объекты-компоненты классов – создаются при построении объекта класса, в котором они описаны, и разрушаются при разрушении объекта класса, в котором они описаны;
– объекты-элементы массивов – создаются при создании массива объектов одного типа.