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

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

R.12.2 Временные объекты





В некоторых ситуациях транслятору бывает необходимо или удобносоздавать временные объекты. Использование временных объектовзависит от реализации. Если транслятору понадобился временныйобъект типа класса с конструктором, он должен обеспечить вызовконструктора для этого временного объекта. Аналогично, необходимовызывать деструктор для объекта класса, в котором описандеструктор. Приведем пример: class X { //... public: //... X(int); X(X&); ~X(); }; X f(X); void g() { X a(1); X b = f(X(2)); a = f(b); } Здесь нужен временный объект для построения X(2), прежде чемпередать его функции f() с помощью X(X&). Альтернативное решение, -построить объект X(2) в памяти, используемой для хранения параметрапри первом вызове f(). Помимо этого, временный объект можетпонадобиться для хранения результата f(X(2)) прежде, чем копироватьего в объект b с помощью X(X&), и здесь возможно альтернативноерешение: хранить результат f(X(2)) в памяти для объекта b. С другойстороны, существует много функций f(), для которых выполнениевыражения a=f(a) требует временного объекта или для параметра a,или для результата f(a), чтобы избежать нежелательного использованияпамяти, которой приписывается имя a. Транслятор обязан гарантировать уничтожение временных объектов.Точный момент уничтожения определяется реализацией. С временнымиобъектами можно производить только две операции: выбрать значениеобъекта (неявно копируя его) для использования в другом выражении,или взять ссылку на него. Если значение временного объекта получено,он считается ненужным и может уничтожаться немедленно. Если на негополучена ссылка, то уничтожать его нельзя, пока существует ссылка.Уничтожение должно произойти до выхода из области определенности,в которой был создан временный объект. Другой вид временных объектов обсуждается в $$R.8.4.3.







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




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


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


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


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

Гносеологический оптимизм, скептицизм, агностицизм.разновидности агностицизма Позицию Агностицизм защищает и критический реализм. Один из главных представителей этого направления...

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

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

Вопрос 1. Коллективные средства защиты: вентиляция, освещение, защита от шума и вибрации Коллективные средства защиты: вентиляция, освещение, защита от шума и вибрации К коллективным средствам защиты относятся: вентиляция, отопление, освещение, защита от шума и вибрации...

Задержки и неисправности пистолета Макарова 1.Что может произойти при стрельбе из пистолета, если загрязнятся пазы на рамке...

Вопрос. Отличие деятельности человека от поведения животных главные отличия деятельности человека от активности животных сводятся к следующему: 1...

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