Студопедия — R.8.4 Инициализаторы
Студопедия Главная Случайная страница Обратная связь

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

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; просмотров: 289. Нарушение авторских прав; Мы поможем в написании вашей работы!



Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

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

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Что такое пропорции? Это соотношение частей целого между собой. Что может являться частями в образе или в луке...

Растягивание костей и хрящей. Данные способы применимы в случае закрытых зон роста. Врачи-хирурги выяснили...

ФАКТОРЫ, ВЛИЯЮЩИЕ НА ИЗНОС ДЕТАЛЕЙ, И МЕТОДЫ СНИЖЕНИИ СКОРОСТИ ИЗНАШИВАНИЯ Кроме названных причин разрушений и износов, знание которых можно использовать в системе технического обслуживания и ремонта машин для повышения их долговечности, немаловажное значение имеют знания о причинах разрушения деталей в результате старения...

Билиодигестивные анастомозы Показания для наложения билиодигестивных анастомозов: 1. нарушения проходимости терминального отдела холедоха при доброкачественной патологии (стенозы и стриктуры холедоха) 2. опухоли большого дуоденального сосочка...

Сосудистый шов (ручной Карреля, механический шов). Операции при ранениях крупных сосудов 1912 г., Каррель – впервые предложил методику сосудистого шва. Сосудистый шов применяется для восстановления магистрального кровотока при лечении...

Трамадол (Маброн, Плазадол, Трамал, Трамалин) Групповая принадлежность · Наркотический анальгетик со смешанным механизмом действия, агонист опиоидных рецепторов...

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