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

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

R.13 Перегрузка





Говорят, что имя перегружено, если для него задано несколько различныхописаний функций в одной области видимости. При использовании именивыбор правильной функции производится путем сопоставления типовформальных параметров с типами фактических параметров, например: double abs(double); int abs(int); abs(1); // вызов abs(int) abs(1.0); // вызов abs(double) Поскольку при любом типе T и для самого T, для и T& допустимо одно ито же множество инициализирующих значений, функции, типы параметровкоторых различаются только использованием, или не использованиемссылки, не могут иметь одинаковые имена, например: int f(int i) { //... } int f(int& r) // ошибка: типы функций { // недостаточно различны //... } Аналогично, поскольку для любом типе T для самого T, const T иvolatile T допустимо одно и то же множество инициализирующихзначений, функции, типы параметров которых отличаются толькоуказанной спецификацией, не могут иметь одинаковые имена. Однако,различить const T&, volatile T& и просто T& можно, поэтому допустимыопределения функций с одним именем, которые различаются тольков указанном отношении. Аналогично, допустимы определения функцийс одним именем, типы параметров которых различаются только кактипы вида const T*, volatile T* и просто T*. Не могут иметь одинаковые имена функции, которые отличаютсятолько типом возвращаемого значения. Не могут иметь одинаковые имена функции-члены, одна из которыхстатическая, а другая нет ($$R.9.4). С помощью конструкции typedef не создаются новые типы,а только определяется синоним типа ($$R.7.1.3), поэтому функции,которые отличаются только за счет использования типов, определенных спомощью typedef, не могут иметь одинаковые имена. Приведемпример: typedef int Int; void f(int i) { /*... */ } void f(Int i) { /*... */ } // ошибка: переопределение f С другой стороны все перечисления считаются разными типами, и с ихпомощью можно различить перегруженные функции, например: enum E { a }; void f(int i) { /*... */ } void f(E i) { /*... */ } Типы параметров, которые различаются только тем, что в одномиспользуется указатель *, а в другом массив [], считаются идентичными.Напомним, что для типа параметра важны только второй и последующиеиндексы многомерного массива ($$R.8.2.4). Подтвердим сказанноепримером: f(char*); f(char[]); // идентично f(char*); f(char[7]); // идентично f(char*); f(char[9]); // идентично f(char*); g(char(*)[10]); g(char[5][10]); // идентично g(char(*)[10]); g(char[7][10]); // идентично g(char(*)[10]); g(char(*)[20]); // отлично от g(char(*)[10]);







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




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


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


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


Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Ведение учета результатов боевой подготовки в роте и во взводе Содержание журнала учета боевой подготовки во взводе. Учет результатов боевой подготовки - есть отражение количественных и качественных показателей выполнения планов подготовки соединений...

Сравнительно-исторический метод в языкознании сравнительно-исторический метод в языкознании является одним из основных и представляет собой совокупность приёмов...

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

Гальванического элемента При контакте двух любых фаз на границе их раздела возникает двойной электрический слой (ДЭС), состоящий из равных по величине, но противоположных по знаку электрических зарядов...

Сущность, виды и функции маркетинга персонала Перснал-маркетинг является новым понятием. В мировой практике маркетинга и управления персоналом он выделился в отдельное направление лишь в начале 90-х гг.XX века...

Разработка товарной и ценовой стратегии фирмы на российском рынке хлебопродуктов В начале 1994 г. английская фирма МОНО совместно с бельгийской ПЮРАТОС приняла решение о начале совместного проекта на российском рынке. Эти фирмы ведут деятельность в сопредельных сферах производства хлебопродуктов. МОНО – крупнейший в Великобритании...

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