MaterStudiorum.ru - домашняя страничка студента.
Минимум рекламы - максимум информации.


Авиация и космонавтика
Административное право
Арбитражный процесс
Архитектура
Астрология
Астрономия
Банковское дело
Безопасность жизнедеятельности
Биографии
Биология
Биология и химия
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
Валютные отношения
Ветеринария
Военная кафедра
География
Геодезия
Геология
Геополитика
Государство и право
Гражданское право и процесс
Делопроизводство
Деньги и кредит
Естествознание
Журналистика
Зоология
Издательское дело и полиграфия
Инвестиции
Иностранный язык
Информатика
Информатика, программирование
Исторические личности
История
История техники
Кибернетика
Коммуникации и связь
Компьютерные науки
Косметология
Краткое содержание произведений
Криминалистика
Криминология
Криптология
Кулинария
Культура и искусство
Культурология
Литература и русский язык
Литература(зарубежная)
Логика
Логистика
Маркетинг
Математика
Медицина, здоровье
Медицинские науки
Международное публичное право
Международное частное право
Международные отношения
Менеджмент
Металлургия
Москвоведение
Музыка
Муниципальное право
Налоги, налогообложение
Наука и техника
Начертательная геометрия
Новейшая история, политология
Оккультизм и уфология
Остальные рефераты
Педагогика
Полиграфия
Политология
Право
Право, юриспруденция
Предпринимательство
Промышленность, производство
Психология
Психология, педагогика
Радиоэлектроника
Разное
Реклама
Религия и мифология
Риторика
Сексология
Социология
Статистика
Страхование
Строительные науки
Строительство
Схемотехника
Таможенная система
Теория государства и права
Теория организации
Теплотехника
Технология
Товароведение
Транспорт
Трудовое право
Туризм
Уголовное право и процесс
Управление
Управленческие науки
Физика
Физкультура и спорт
Философия
Финансовые науки
Финансы
Фотография
Химия
Хозяйственное право
Цифровые устройства
Экологическое право
Экология
Экономика
Экономико-математическое моделирование
Экономическая география
Экономическая теория
Эргономика
Этика
Юриспруденция
Языковедение
Языкознание, филология
    Начало -> Информатика, программирование -> Определяемое Преобразование Типа

Название:Определяемое Преобразование Типа
Просмотров:205
Раздел:Информатика, программирование
Ссылка:none(0 KB)
Описание:Конструкторы. Операции Преобразования. Неоднозначности.

Университетская электронная библиотека.
www.infoliolib.info

Часть полного текста документа:

Определяемое Преобразование Типа
    Приведенная во введении реализация комплексных чисел слишком ограничена, чтобы она могла устроить кого-либо, поэтому ее нужно расширить. Это будет в основном повторением описанных выше методов.
    Например:
    class complex {
    double re, im;
    public:
    complex(double r, double i) { re=r; im=i; }
    friend complex operator+(complex, complex);
    friend complex operator+(complex, double);
    friend complex operator+(double, complex);
    friend complex operator-(complex, complex);
    friend complex operator-(complex, double);
    friend complex operator-(double, complex);
    complex operator-() // унарный -
    friend complex operator*(complex, complex);
    friend complex operator*(complex, double);
    friend complex operator*(double, complex);
    // ...
    };
    Теперь, имея описание complex, мы можем написать:
    void f()
    {
    complex a(1,1), b(2,2), c(3,3), d(4,4), e(5,5);
    a = -b-c;
    b = c*2.0*c;
    c = (d+e)*a;
    }
    Но писать функцию для каждого сочетания complex и double, как это делалось выше для operator+(), невыносимо нудно. Кроме того, близкие к реальности средства комплексной арифметики должны предоставлять по меньшей мере дюжину таких функций; посмотрите, например, на тип complex.
    Конструкторы
    Альтернативу использованию нескольких функций (перегруженных) составляет описание конструктора, который по заданному double создает complex.
    Например:
    class complex {
    // ...
    complex(double r) { re=r; im=0; }
    };
    Конструктор, требующий только один параметр, необязательно вызывать явно:
    complex z1 = complex(23);
    complex z2 = 23;
    И z1, и z2 будут инициализированы вызовом complex(23).
    Конструктор - это предписание, как создавать значение данного типа. Когда требуется значение типа, и когда такое значение может быть создано конструктором, тогда, если такое значение дается для присваивания, вызывается конструктор.
    Например, класс complex можно было бы описать так:
    class complex {
    double re, im;
    public:
    complex(double r, double i = 0) { re=r; im=i; }
    friend complex operator+(complex, complex);
    friend complex operator*(complex, complex);
    };
    и действия, в которые будут входить переменные complex и целые константы, стали бы допустимы. Целая константа будет интерпретироваться как complex с нулевой мнимой частью. Например, a=b*2 означает:
    a=operator*( b, complex( double(2), double(0) ) )
    Определенное пользователем преобразование типа применяется неявно только тогда, когда оно является единственным.
    Объект, сконструированный с помощью явного или неявного вызова конструктора, является автоматическим и будет уничтожен при первой возможности, обычно сразу же после оператора, в котором он был создан.
    Операции Преобразования
    Использование конструктора для задания преобразования типа является удобным, но имеет следствия, которые могут оказаться нежелательными:
    Не может быть неявного преобразования из определенного пользователем типа в основной тип (поскольку основные типы не являются классами);
    Невозможно задать преобразование из нового типа в старый, не изменяя описание старого; и
    Невозможно иметь конструктор с одним параметром, не имея при этом преобразования. ............






Похожие работы:

Название:Психологическая характеристика преобразования деятельности в условиях применения информационных технологий
Просмотров:225
Описание: Содержание Введение Психологическая характеристика преобразования деятельности в условиях применения информационных технологий Некоторые психологические механизмы воздействия информатизации Закл

Название:Технология преобразования документов XSLT
Просмотров:270
Описание: Московский государственный технический университет имени Н.Э. БауманаДомашнее задание по курсу: “Технология XML” Тема: “Технология XSLT”Выполнила: студентка Заварзина В.В. Проверил: Гапанюк Ю.Е.Москва, 2010 &nb

Название:Решение задачи об оптимальной интерполяции с помощью дискретного преобразования Фурье (ДПФ)
Просмотров:282
Описание: Введение Предложенная мне тема «Решение задачи об оптимальной интерполяции с помощью дискретного преобразования Фурье (ДПФ)» написана на основе книги В. Н. Малоземова и С. М. Машарского «Основы дискретного гармон

Название:Градостроительные преобразования Парижа XVIII–IX вв. и характеристика ансамбля Лувра
Просмотров:265
Описание: Содержание Введение §1. Французский классицизм второй половины XVII в. §2. Градостроительство Парижа в XVII- XVIII вв. §3. Дворцово-парковый ансамбль Версаля §4. Площадь Согласия в Париже §5. Ансамбль Лувра §5.

Название:Аффинные преобразования
Просмотров:233
Описание: Глава I.Понятие о геометрическом преобразовании 1.1 Что такое геометрическое преобразование? Осевая симметрия, центральная симметрия, поворот, параллельный перенос, гомотетия имеют то общее, что все они

 
     

Вечно с вами © MaterStudiorum.ru