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

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

R.12.6.1 Явная инициализация





Объекты классов с конструкторами ($$R.12.1) можно инициализироватьсписком выражений, заключенным в скобки. Этот список считаетсясписком фактических параметров для вызова конструктора, производящегоинициализацию. Иначе, в качестве инициализатора задается с помощьюоперации = одно значение. Оно используется как фактический параметрдля конструктора копирования. Обычно можно обойтись без вызоваконструктора копирования, например: class complex { //... public: complex(); complex(double); complex(double,double); //... }; complex sqrt(complex,complex); complex a(1); // инициализация вызовом // complex(double) complex b = a; // инициализация копированием `a' complex c = complex(1,2); // конструктор complex(1,2) // вызывается complex(double,double) // и копируется в `c' complex d = sqrt(b,c); // вызывается sqrt(complex,complex), // результат копируется в `d' complex e; // инициализация вызовом конструктора complex f = 3; // complex(3), вызывается // complex(double) и результат // копируется в `f' Перегрузка операции присваивания = не оказывает влияние наинициализацию. Инициализация, происходящая при передаче фактических параметрови при возврате из функции, эквивалентна инициализации вида T x = a; Инициализация, происходящая в выражении операции new ($$R.5.3.3) ипри инициализации базовых классов и членов, эквивалентнаинициализации вида T x(a); Для массивов объектов класса с конструкторами используются приинициализации ($$R.12.1) конструкторы как и для одиночных объектов.Если оказалось, что инициализаторов в списке меньше, чем элементовмассива, используется стандартный конструктор ($$R.12.1). Если егонет, список инициализаторов должен быть полным. Приведем пример: complex cc = { 1, 2 }; // ошибка: необходимо // использовать конструктор complex v[6] = { 1,complex(1,2),complex(),2 }; Здесь v[0] и v[3] инициализируются значением complex::complex(double),v[1] инициализируется complex::complex(double,double), а v[2],v[4] и v[5] инициализированы complex::complex(). Объект класса M моет быть членом класса X в одном из следующихслучаев: (1) M не имеет конструктора; (2) M имеет стандартный конструктор; (3) X имеет конструктор и каждый из них задает инициализатор-ctor ($$R.12.6.2) для члена M.В случае 2 при создании составного объекта вызывается стандартныйконструктор. Если член составного объекта имеет деструктор, то онвызывается при уничтожении составного объекта. Конструкторы для нелокальных статических объектов вызываются втом порядке, в каком они идут в тексте программы, деструкторывызываются в обратном порядке, см. также $$R.3.4, $$R.6.7,$$R.9.4.







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




Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...


Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Понятие метода в психологии. Классификация методов психологии и их характеристика Метод – это путь, способ познания, посредством которого познается предмет науки (С...

ЛЕКАРСТВЕННЫЕ ФОРМЫ ДЛЯ ИНЪЕКЦИЙ К лекарственным формам для инъекций относятся водные, спиртовые и масляные растворы, суспензии, эмульсии, ново­галеновые препараты, жидкие органопрепараты и жидкие экс­тракты, а также порошки и таблетки для имплантации...

Тема 5. Организационная структура управления гостиницей 1. Виды организационно – управленческих структур. 2. Организационно – управленческая структура современного ТГК...

Законы Генри, Дальтона, Сеченова. Применение этих законов при лечении кессонной болезни, лечении в барокамере и исследовании электролитного состава крови Закон Генри: Количество газа, растворенного при данной температуре в определенном объеме жидкости, при равновесии прямо пропорциональны давлению газа...

Ганглиоблокаторы. Классификация. Механизм действия. Фармакодинамика. Применение.Побочные эфффекты Никотинчувствительные холинорецепторы (н-холинорецепторы) в основном локализованы на постсинаптических мембранах в синапсах скелетной мускулатуры...

Шов первичный, первично отсроченный, вторичный (показания) В зависимости от времени и условий наложения выделяют швы: 1) первичные...

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