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

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

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 оперирует с двумя категориями...


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


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


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

Тема: Изучение фенотипов местных сортов растений Цель: расширить знания о задачах современной селекции. Оборудование:пакетики семян различных сортов томатов...

Тема: Составление цепи питания Цель: расширить знания о биотических факторах среды. Оборудование:гербарные растения...

В эволюции растений и животных. Цель: выявить ароморфозы и идиоадаптации у растений Цель: выявить ароморфозы и идиоадаптации у растений. Оборудование: гербарные растения, чучела хордовых (рыб, земноводных, птиц, пресмыкающихся, млекопитающих), коллекции насекомых, влажные препараты паразитических червей, мох, хвощ, папоротник...

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

Различие эмпиризма и рационализма Родоначальником эмпиризма стал английский философ Ф. Бэкон. Основной тезис эмпиризма гласит: в разуме нет ничего такого...

Индекс гингивита (PMA) (Schour, Massler, 1948) Для оценки тяжести гингивита (а в последующем и ре­гистрации динамики процесса) используют папиллярно-маргинально-альвеолярный индекс (РМА)...

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