46261

Значения параметров по умолчанию. Перегрузка функций и операторов. Дружественные функции

Доклад

Информатика, кибернетика и программирование

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

Русский

2013-11-20

13.3 KB

1 чел.

5. Значения параметров по умолчанию. Перегрузка функций и операторов. Дружественные функции.

Дружественные функции и классы

• Дружественная функция объявляется внутри класса, к элементам которого ей нужен доступ, с ключевым словом friend.

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

• Одна функция может быть дружественной сразу нескольким классами.

class Hero {

public:

 void Kill(Monster &) {

   M.health = 0; M.ammo = 0;

}

};

class Monster {

friend int StealAmmo(Monster &);

friend void Hero::Kill(Monster &);  

};

int StealAmmo(Monster &M) {

return --M.ammo;

}

Значения параметров по умолчанию

У функции может быть больше параметров, чем в самых простых и наиболее часто используемых случаях.

void Print(int n, int base)

{

 switch(base) {

case 8:  cout << oct << n << endl; break;

 case 10: cout << dec << n << endl; break;

 case 16: cout << hex << n << endl; break;

 }

}

Параметры по умолчанию должны идти в конце функции:

// нормально

int f(int, int = 0, char* = 0);   

// ошибка

int g(int = 0, int = 0, char*);   

// ошибка

int h(int = 0, int, char* = 0);

Перегрузка функций и операторов

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

В большинстве ранних языков программирования, для упрощения процесса

трансляции существовало ограничение, согласно которому одновременно в программе не может быть доступно более одной процедуры с одним и тем же именем.

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

Разные функции обычно имеют разные имена, но функциям, выполняющим сходные операции над объектами разных типов, лучше дать одно имя.

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

void Print(int n, int base = 10)

Эквивалентная запись при помощи перегрузки:

void Print(int n) { Print(n, 10); }

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

• при перегрузке операций сохраняются количество аргументов, приоритеты

операций и правила ассоциации (справа налево или слева направо), используемые в

стандартных типах данных

• для стандартных типов данных переопределять операции нельзя

• функции-операции не могут иметь аргументов по умолчанию

• функции-операции наследуются, за исключением =

тип operator операция (список параметров)

{

тело функции

}


 

А также другие работы, которые могут Вас заинтересовать

48055. МЕТОДИЧЕСКОЕ ПОСОБИЕ ПО МЕДИЦИНСКОЙ ГЕНЕТИКЕ 667.5 KB
  УКАЖИТЕ ПРАВИЛЬНЫЕ ОТВЕТЫ Английский биолог Glton ввел в науку и практику следующие методы генетики человека и медицинской генетики: Близнецовый Дерматоглифический Популяционно-статистический Статистический Цитогенетический Генеалогический
48056. Регіональна економіка 747.5 KB
  Господарський комплекс України 7 Тема 1.1 Природноресурсний потенціал України 7 Тема 1.2 Трудовий потенціал України 8 Тема 1.4 Економічне районування та територіальна організація господарства України.
48057. Логістика. Парктичні роботи 383.5 KB
  Порядок приймання товарів регламентується нормативними актами держави а також умовами договору. У господарській практиці в Україні в даний час використовуються такі нормативні документи що регламентують порядок приймання товарів: Інструкція про порядок приймання продукції виробничотехнічного призначення і товарів народного споживання за кількістю інструкція № П6. Інструкція про порядок приймання продукції виробничотехнічного призначення і товарів народного споживання за якістю інструкція № П7.
48058. Логістика. Методичні вказівки 702 KB
  тонн умови діяльності якого відповідають нижченаведеним а також рівень впливу на загальні витрати тих факторів які визначаються умовами договорів оптового підприємства з постачальниками товарів. Таблиця 1 Фактори які впливають на розмір загального матеріального потоку на складі Позначення фактора Назва фактора Значення фактора за варіантами 1 2 3 4 5 А1 Частка товарів які надходять на склад в неробочий час і проходять через приймальну експедицію 20 15 15 20 15 А2 Частка товарів які проходять через дільницю приймання складу 25 25 20...
48059. Взаємозвязок діалогічного та монологічного мовлення 40.5 KB
  Взаємозв’язок діалогічного та монологічного мовлення. Показати взаємозв’язок діалогічного та монологічного мовлення на конкретних прикладах; ознайомити з видами опор при навчанні зв’язного мовлення молодших школярів; навчити складати структурні схемиопори для монологічних висловлювань розповідного та описового характеру. Вивчіть схему Види опор в навчанні зв’язного мовлення та дайте відповідь на питання: Які опори доцільно використати для навчання монологічного мовлення а які – для діалогічного мовлення Види опор в навчанні зв’язного...
48060. Методика подготовки к семинарским занятиям 37.5 KB
  Приступая к подготовке к семинару по конкретной теме студент должен подробно изучить соответствующий раздел программы курса где в самом сжатом виде определены основные вопросы дана их последовательность а также указана рекомендованная учебная литература основная и дополнительная. Завершающий этап подготовки к семинарам – это ответы на проверочные вопросы и выполнение тестовых заданий которые помогут правильно осмыслить изученный материал и проверить приобретенные знания. Если пройдены все этапы самостоятельной работы то на семинаре Вы...
48061. РОДОСЛОВНАЯ 41.5 KB
  Аягуз Национальность по матери и по отцу фактическая а не паспортная Образование Профессия место работы занимаемая должность Рост пробанда Вес пробанда Дата составления родословной Метод сбора информации: со слов указать с чьих анкетирование личное обследование родственников ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ РОДОСЛОВНОЙ После сбора генеалогической информации переходят к графическому изображению семейного древа рис. При составлении родословной используют общепринятые условные обозначения...