Чтение онлайн

на главную

Жанры

Программирование. Принципы и практика использования C++ Исправленное издание
Шрифт:

switch
(условие) инструкция

инструкция_итерации:

while
(условие) инструкция

do
инструкция
while
(выражение);

for
(инструкция_инициализации_for условие opt;
выражение opt) инструкция

инструкция_с_метками:

case
константное_выражение: инструкция

default:
инструкция

identifier:
инструкция

управляющая_инструкция:

break;

continue;

return
выражение opt;

goto
идентификатор;

список_инструкции:

инструкция список_инструкции opt

условие:

выражение

спецификатор_типа объявляемый_объект = выражение

инструкция_инициализации_for:

выражение opt;

спецификатор_типа объявляемый_объект = выражение;

список_обработчиков:

catch
(объявление_исключения) { список_инструкции opt }

список_обработчиков список_обработчиков opt

Обратите внимание на то, что объявление — это инструкция, а присваивание и вызов функции являются выражениями. К этому определению следует добавить следующий список.

• Итерация (

for
и
while
); см. раздел 4.4.2.

• Ветвление (

if
,
switch
,
case
и
break
); см. раздел 4.4.1. Инструкция
break
прекращает выполнение ближайшей вложенной инструкции
switch
,
while
,
do
или
for
. Иначе говоря, следующей будет выполнена инструкция, следующая за последней в теле одной из перечисленных выше инструкций.

• Выражения; см. разделы A.5 и 4.3.

• Объявления; см. разделы A.6 и 8.2.

• Исключения (

try
и
catch
); см. разделы 5.6 и 19.4.

Рассмотрим пример, созданный просто для того, чтобы продемонстрировать разнообразие инструкций (какую задачу они решают?).

int* f(int p[],int n)

{

if (p==0) throw Bad_p(n);

vector<int> v;

int x;

while (cin>>x) {

if (x==terminator) break; // выход из цикла while

v.push_back(x);

}

for (int i = 0; i<v.size && i<n; ++i) {

if (v[i]==*p)

return p;

else

++p;

}

return 0;

}

A.7. Объявления

Объявление (declaration) состоит из трех частей:

• имя объявляемой сущности;

• тип объявляемой сущности;

• начальное значение объявляемой сущности (во многих случаях необязательное).

Мы можем объявлять следующие сущности:

• объекты встроенных типов и типов, определенных пользователем (раздел A.8);

• типы, определенные пользователем (классы и перечисления) (разделы A.10–А.11, глава 9);

• шаблоны (шаблонные классы и функции) (раздел A.13);

• альтернативные имена (раздел A.16);

• пространства имен (разделы A.15 и 8.7);

• функции (включая функции-члены и операторы) (раздел A.9, глава 8);

• перечисления (значения перечислений) (разделы A.11 и 9.5);

• макросы (разделы A.17.2 и 27.8).

A.7.1. Определения

Определение с инициализацией, резервирующее область памяти или как-то иначе поставляющую компилятору всю информацию, необходимую для использования имени в программе, называется определением (definition). Каждый тип, объект и функция в программе должны иметь только одно определение. Рассмотрим примеры.

double f; // объявление

double f { /* ... */ }; // также определение

extern const int x; // объявление

int y; // также определение

int z = 10; // определение с явной инициализацией

Константы должны быть инициализированы. Для этого используется инициализатор, если константа не объявлена с помощью ключевого слова extern (в таком случае инициализатор вместе с определением должны быть расположены в другом месте) или если константа не имеет тип, имеющий конструктор по умолчанию (раздел A.12.3). Константные члены класса должны инициализироваться в каждом конструкторе с помощью инициализатора (раздел A.12.3).

Поделиться:
Популярные книги

Действуй, дядя Доктор!

Юнина Наталья
Любовные романы:
короткие любовные романы
6.83
рейтинг книги
Действуй, дядя Доктор!

Убийца

Бубела Олег Николаевич
3. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.26
рейтинг книги
Убийца

Краш-тест для майора

Рам Янка
3. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
эро литература
6.25
рейтинг книги
Краш-тест для майора

Найди меня Шерхан

Тоцка Тала
3. Ямпольские-Демидовы
Любовные романы:
современные любовные романы
короткие любовные романы
7.70
рейтинг книги
Найди меня Шерхан

Мастер...

Чащин Валерий
1. Мастер
Фантастика:
героическая фантастика
попаданцы
аниме
6.50
рейтинг книги
Мастер...

Полковник Империи

Ланцов Михаил Алексеевич
3. Безумный Макс
Фантастика:
альтернативная история
6.58
рейтинг книги
Полковник Империи

Протокол "Наследник"

Лисина Александра
1. Гибрид
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Протокол Наследник

Магия чистых душ

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.40
рейтинг книги
Магия чистых душ

Бальмануг. Невеста

Лашина Полина
5. Мир Десяти
Фантастика:
юмористическое фэнтези
5.00
рейтинг книги
Бальмануг. Невеста

Идеальный мир для Лекаря 15

Сапфир Олег
15. Лекарь
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 15

Газлайтер. Том 16

Володин Григорий Григорьевич
16. История Телепата
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Газлайтер. Том 16

Охота на эмиссара

Катрин Селина
1. Федерация Объединённых Миров
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Охота на эмиссара

Live-rpg. эволюция-5

Кронос Александр
5. Эволюция. Live-RPG
Фантастика:
боевая фантастика
5.69
рейтинг книги
Live-rpg. эволюция-5

Неестественный отбор.Трилогия

Грант Эдгар
Неестественный отбор
Детективы:
триллеры
6.40
рейтинг книги
Неестественный отбор.Трилогия