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

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

R.12.1 Конструкторы






Конструктором называется функция-член, имя которой совпадает с именемкласса, он используется для построения значений, имеющих тип данногокласса. Если в классе есть конструктор, то каждый объект этого классаперед произвольным использованием будет инициализироваться, см.$$R.12.6. Конструктор может вызываться для объекта со спецификацией constили volatile. Сам конструктор нельзя описывать со спецификациейconst или volatile ($$R.9.3.1). Конструктор также не может иметьспецификацию virtual или static. Конструкторы не наследуются, однако, стандартные конструкторыи конструкторы копирования при необходимости создаются транслятором($$R.12.8). Такие конструкторы являются общими. Стандартным конструктором для класса X является такой конструкторкласса X, который можно вызывать без параметров. Стандартныйконструктор для класса X будет создан только тогда, когда для классаX не описано ни одного конструктора. Конструктором копирования для класса X называется конструктор,который вызывается для копирования объекта класса X, т.е. вызываетсяс одним параметром типа X. Например, X::X(const X&) иX::X(X&, int=0) являются конструкторами копирования. Конструкторкопирования создается только тогда, когда не описано ни одногоконструктора копирования. Конструктор копирования для класса X не должен иметь в качествепараметра объект типа X, например X::X(X) незаконное обращение. Конструктор для массива элементов вызывается в порядкевозрастания адресов элементов ($$R.8.2.4). Если у класса есть базовые классы с конструктором или члены,являющиеся объектами с конструктором, их конструкторы вызываютсяпрежде, чем конструктор производного класса. В $$R.12.6.2 объясняетсякак задаются параметры для таких конструкторов и как определяетсяпорядок их вызова. Объект класса с конструктором не может быть членом объединения. Для конструктора не нужно указывать никакого типа возвращаемогозначения, даже void. В операторе return в теле конструктора нельзяуказывать возвращаемое значение. Не допустима операция взятияадреса конструктора. Конструктор можно явно использовать для создания объектов еготипа с помощью следующей записи: имя-класса (список-выражений opt)Приведем пример: complex zz = complex(1,2.3); print(complex(7.8,1.2)); Объект, созданный таким образом является безымянным (если толькоконструктор не использовался для инициализации поименованной переменнойкак zz выше), а время его жизни ограничено выражением, в которомон был создан, см. $$R.12.2. В конструкторе можно вызывать функцию-член, см. $$R.12.7.







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



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

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

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

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

Функциональные обязанности медсестры отделения реанимации · Медсестра отделения реанимации обязана осуществлять лечебно-профилактический и гигиенический уход за пациентами...

Определение трудоемкости работ и затрат машинного времени На основании ведомости объемов работ по объекту и норм времени ГЭСН составляется ведомость подсчёта трудоёмкости, затрат машинного времени, потребности в конструкциях, изделиях и материалах (табл...

Гидравлический расчёт трубопроводов Пример 3.4. Вентиляционная труба d=0,1м (100 мм) имеет длину l=100 м. Определить давление, которое должен развивать вентилятор, если расход воздуха, подаваемый по трубе, . Давление на выходе . Местных сопротивлений по пути не имеется. Температура...

Этические проблемы проведения экспериментов на человеке и животных В настоящее время четко определены новые подходы и требования к биомедицинским исследованиям...

Классификация потерь населения в очагах поражения в военное время Ядерное, химическое и бактериологическое (биологическое) оружие является оружием массового поражения...

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

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