|
Программирование >> Перегруженные имена функций и идентификаторы
Если необходимо, то выражение преобразуется, как это делается при присваивании, к типу функции, в которой оно возникло. Обход конца функции эквивалентен возврату return без возвращаемого значения. Оператор goto Можно осуществлять безусловную передачу управления с помощью оператора goto идентификатор ; Идентификатор должен быть меткой, расположенной в текущей функции. Помеченные операторы Перед любым оператором может стоять префикс метка, имеющий вид идентификатор : который служит для описания идентификатора как метки. Метка используется только как объект для goto. Областью видимости метки является текущая функция, исключая любой подблок, в котором был переописан такой же идентификатор. Пустой оператор Пустой оператор имеет вид Пустой оператор используется для помещения метки непосредственно перед } составного оператора или того, чтобы снабдить такие операторы, как while, пустым телом. Оператор delete Оператор delete имеет вид delete выражение ; Результатом выражения должен быть указатель. Объект, на который он указывает, уничтожается. Это значит, что после оператора уничтожения delete нельзя гарантировать, что объект имеет определенное значение. Эффект от применения delete к указателю, не полученному из операции new, не определен. Однако, уничтожение указателя с нулевым значением безопасно. Оператор asM Оператор asm имеет вид asm ( строка) ; Смысл оператора asm не определен. Обычно он используется для передачи информации через компилятор ассемблеру. Внешние определения Программа на C++ состоит из последовательности внешних определений. Внешнее определение описывает идентификатор как имеющий класс памяти static и определяет его тип. Спецификатор типа может также быть пустым, и в этом случае принимается тип int. Область видимости внешних определений простирается до конца файла, в котором они описаны, так же, как действие описаний сохраняется до конца блока. Синтаксис внешних определений тот же, что и у описаний, за исключением того, что только на этом уровне и внутри описаний классов может быть задан код (текст программы) функции. Определения функций Определения функций имеют вид: определение функции: спецификаторы описания описатель функции opt инициализатор базового класса opt тело функции Единственными спецификаторами класса памяти (sc-спецификаторами), допустимыми среди спецификаторов описания, являются extern, static, overload, inline и virtual. Описатель функции похож на описатель функции, возвращающей ... , за исключением того, что он включает в себя имена формальных параметров определяемой функции. Описатель функции имеет вид: описатель функции: описатель ( список описаний параметров ) Единственный класс памяти, который может быть задан, это тот, при котором соответствующий фактический параметр будет скопирован, если это возможно, в регистр при входе в функцию. Если в качестве инициализатора для параметра задано константное выражение, то это значение используется как значение параметра по умолчанию. Тело функции имеет вид тело функции: составной оператор Вот простой пример полного определения функции: int max (int a,int b,int c) int m = (a > b) ? a : b; return (m > c) ? m : c; Здесь int является спецификатором типа; max (int a, int b, int c) является описателем функции; { ... } - блок, задающий текст программы (код) оператора. Поскольку в контексте выражения имя (точнее, имя как формальный параметр) считается означающим указатель на первый элемент массива, то описания формальных параметров, описанных как массив из ... , корректируются так, чтобы читалось указатель на ... . Инициализатор базового класса имеет вид: инициализатор базового класса: : ( список параметров opt ) Он используется для задания параметров конструктора базового класса в конструкторе производного класса. Например: struct base { base (int); ... }; struct derived : base { derived (int); ... };
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |