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 операция (список параметров)

{

тело функции

}


 

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

44114. Подготовка печатной машины Speedmaster SM 102 к печатанию тиража и получение контрольного оттиска 1.3 MB
  Установка и приладка валиков.Подготовка валиков увлажняющего аппарата Сразу по возвращению в Германию Каспар Херманн смог получить патент на офсетную машину работа которой была основана на принципе использования резиновых валиков что позволяло печатать с лицевой и оборотной стороны листа. Красочный аппарат состоит из красочного ящика кипсейки дукторного вала системы обрезиненных валиков и металлических цилиндров различного диаметра накатных валиков но может содержать дополнительно валикинаездники и мостовой валик.
44116. Совершенствование инвестиционной деятельности полиграфического предприятия по повышению качества печатной продукции и ее экономическая оценка на примере ООО «Пронто-Калининград» 2.37 MB
  ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ИНВЕСТИЦИОННОЙ деятельности предприятия. Сущность и понятия инвестиционной деятельности предприятия. Особенности инвестиционной деятельности предприятия в современных условиях. Методы оценки и показатели совершенствования инвестиционной деятельности предприятия.
44117. Технология изготовления отливки «Обечайка» массой 47 т из стали 10ГН2МФАЛ 1.72 MB
  Этапы формирования отливки. Технологические приёмы воздействия на процессы затвердевания и охлаждения отливки в литейной форме. Способы воздействия на характер формирования отливки на этапе охлаждения расплава до температуры кристаллизации. Получение заданных свойств для отливок ответственного назначения. Проектирование технологии изготовления отливки Обечайки парогенератора ПГВ1000 в литейных формах с дифференцированным отводом тепла.
44118. Модель создания единого информационного пространства образовательного учреждения с применением сетевых информационных технологий 1.25 MB
  Особую роль в данной форме самообразования могут занять социальные сети и социальные сообщества функционирующие в Интернете. Все больше преподавателей осваивают работу в Сети и начинают использовать ее в образовательном процессе. При условии создания в учебном заведении Интернет-системы следующим шагом становится выход на более высокий уровень функционирования информационного пространства Интернет предусматривающий создание и открытие доступа всем непосредственным участникам учебного процесса и внешним посетителям к сайту учебного...
44119. Технологический процесса производства сборной жестяной консервной тары 4.79 MB
  В некоторых случаях можно отказаться от применения пайки продольного шва. Продольный шов можно соединять с помощью клеящего устройства и герметизировать уплотняющими средствами. Благодаря этому становиться возможным изготовление герметичных сборных жестяных банок из неподдающихся пайки исходных материалов.
44120. Разработка способов сжигания твердого топлива ОАО «Экспериментальная ТЭС» 1.73 MB
  Расчет мощности на перекачку воды Расчет деаэратора питательной воды ДПВ до реконструкции на каждый котел установлен один деаэратор. Расчет теплового баланса деаэратора питательной воды ДПВ. Выбор деаэратора питательной воды ДПВ.
44121. Транспортировка грузов 1.01 MB
  Поэтому для обеспечения высоких эксплуатационных характеристик грузоподъемных кранов и их безаварийной работы машинист крана крановщик и обслуживающий персонал должны знать хорошо назначение область применения и устройство кранов их конструктивные особенности технические характеристики устройство и работу крановых механизмов электрооборудования приборов и устройств безопасности. Кроме того машинист крана должен знать правила безопасной эксплуатации кранов их технического обслуживания и ремонта современную прогрессивную технологию и...
44122. МОТИВАЦИИ УЧЕБНОЙ ДЕЯТЕЛЬНОСТИ ПЕРВОКЛАССНИКОВ С ЗАДЕРЖКОЙ ПСИХИЧЕСКОГО РАЗВИТИЯ 588.5 KB
  Мотивационную сферу человека с точки зрения ее развитости можно оценивать по следующим параметрам: широта, гибкость и иерархизированность. Под широтой мотивационной сферы понимается качественное разнообразие мотивационных факторов — диспозиций (мотивов), потребностей и целей, представленных на каждом из уровней.