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

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

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; просмотров: 312. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

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

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

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

Субъективные признаки контрабанды огнестрельного оружия или его основных частей   Переходя к рассмотрению субъективной стороны контрабанды, остановимся на теоретическом понятии субъективной стороны состава преступления...

ЛЕЧЕБНО-ПРОФИЛАКТИЧЕСКОЙ ПОМОЩИ НАСЕЛЕНИЮ В УСЛОВИЯХ ОМС 001. Основными путями развития поликлинической помощи взрослому населению в новых экономических условиях являются все...

МЕТОДИКА ИЗУЧЕНИЯ МОРФЕМНОГО СОСТАВА СЛОВА В НАЧАЛЬНЫХ КЛАССАХ В практике речевого общения широко известен следующий факт: как взрослые...

Характерные черты официально-делового стиля Наиболее характерными чертами официально-делового стиля являются: • лаконичность...

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

Понятие и структура педагогической техники Педагогическая техника представляет собой важнейший инструмент педагогической технологии, поскольку обеспечивает учителю и воспитателю возможность добиться гармонии между содержанием профессиональной деятельности и ее внешним проявлением...

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