Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

R.8.4 Инициализаторы





За описателем может идти начальное значение описываемого идентификатора. инициализатор: = выражение-присваивания = { список-инициализаторов, opt } (список-выражений) список-инициализаторов: выражение-присваивания список-инициализаторов, выражение-присваивания { список-инициализаторов, opt } Автоматические, регистровые, статические и внешние переменныеможно инициализировать произвольными выражениями, содержащимиконстанты и описанные ранее переменные и функции. int f(int); int a = 2; int b = f(a); int c(b); Указатель типа const T*, т.е. указатель на константу T, можетинициализироваться указателем типа T*, но инициализация для указателейв обратном порядке незаконна. Объекты типа T можно инициализироватьобъектами типа T независимо от использования спецификаций const илиvolatile в типах инициализируемой переменной или инициализатора,например, int a; const int b = a; int c = b; const int* p0 = &a; const int* p1 = &b; int* p2 = &b; // ошибка: указатель без const // настраивается на объект const int *const p3 = p2; int *const p4 = p1; // ошибка: указатель без const // настраивается на объект const const int* p5 = p1; Здесь причина обеих ошибок одна: если допустить подобную инициализацию,она позволит изменять с помощью указателя без соответствующейспецификации значение чего-то, что было описано как const. На выражения для стандартных значений параметров накладываетсябольше ограничений, см. $$R.8.2.6. Инициализация объектов классов с помощью конструкторов описываетсяв $$R.12.6.1. Копирование объектов классов описывается в $$R.12.8.Порядок инициализации статических объектов определяется в $$R.3.4и $$R.6.7. Гарантируется, что переменные статического класса памяти ($$R.3.5),которые не были инициализированы, в качестве начального значенияполучат 0, приведенный к нужному типу. То же справедливо для статическихчленов объектов класса. Начальные значения автоматических ирегистровых переменных, которые не были инициализированы, неопределены. Если инициализатор относится к указателю или объекту арифметическоготипа, он состоит из одного выражения (возможно в скобках). В качественачального значения объекта берется значение выражения, происходяттакие же преобразования типа, как и в случае присваивания. Заметим, что поскольку () не является инициализатором,описание X a(); задает не объект a типа класс X, а является описанием функции безпараметров, возвращающей X. Инициализатор для статического члена принадлежит областивидимости члена класса, например, int a; struct X { static int a; static int b; }; int X::a = 1; int X::b = a; // X::b = X::a







Дата добавления: 2015-09-04; просмотров: 308. Нарушение авторских прав; Мы поможем в написании вашей работы!




Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...


Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...


Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...


Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Мелоксикам (Мовалис) Групповая принадлежность · Нестероидное противовоспалительное средство, преимущественно селективный обратимый ингибитор циклооксигеназы (ЦОГ-2)...

Менадиона натрия бисульфит (Викасол) Групповая принадлежность •Синтетический аналог витамина K, жирорастворимый, коагулянт...

Разновидности сальников для насосов и правильный уход за ними   Сальники, используемые в насосном оборудовании, служат для герметизации пространства образованного кожухом и рабочим валом, выходящим через корпус наружу...

ТЕРМОДИНАМИКА БИОЛОГИЧЕСКИХ СИСТЕМ. 1. Особенности термодинамического метода изучения биологических систем. Основные понятия термодинамики. Термодинамикой называется раздел физики...

Травматическая окклюзия и ее клинические признаки При пародонтите и парадонтозе резистентность тканей пародонта падает...

Подкожное введение сывороток по методу Безредки. С целью предупреждения развития анафилактического шока и других аллергических реак­ций при введении иммунных сывороток используют метод Безредки для определения реакции больного на введение сыворотки...

Studopedia.info - Студопедия - 2014-2024 год . (0.01 сек.) русская версия | украинская версия