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

{

тело функции

}


 

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

19154. Основные свойства криогенных жидкостей 175 KB
  ОСНОВЫ КОНСТРУИРОВАНИЯ КРИОГЕННЫХ УСТРОЙСТВ Лекция 1 Основные свойства криогенных жидкостей 1.1. Виды жидких хладагентов Для получения низких температур можно использовать различные криогенные жидкости которые прежде всего характеризуются температурой кипения...
19155. Теплоизоляция и принципы теплового расчета 67.5 KB
  ОСНОВЫ КОНСТРУИРОВАНИЯ КРИОГЕННЫХ УСТРОЙСТВ Лекция 2 Теплоизоляция и принципы теплового расчета Изза малой величины теплоты парообразования жидких хладагентов особенно жидкого гелия вопросы теплоизоляции рабочего объема играют ключевую роль при разработке р
19156. Теплопритоки к жидкому хладагенту 159 KB
  ОСНОВЫ КОНСТРУИРОВАНИЯ КРИОГЕННЫХ УСТРОЙСТВ Лекция 3 Теплопритоки к жидкому хладагенту. 1.Теплоподвод за счет теплопроводности твердых тел 1.1Общие закономерности Перенос тепла в твердых телах теплопроводностью при низких температурах подчиняется известным зак
19157. Теплопритоки к жидкому хладагенту. ОСНОВЫ КОНСТРУИРОВАНИЯ КРИОГЕННЫХ УСТРОЙСТВ 69 KB
  ОСНОВЫ КОНСТРУИРОВАНИЯ КРИОГЕННЫХ УСТРОЙСТВ Лекция 4 Теплопритоки к жидкому хладагенту. 1. Лучистый теплообмен Тепловое излучение является разновидностью электромагнитных волн. Перенос тепла излучением может происходить как в видимой 04  076 мкм так и в инфракра...
19158. Основные конструктивные схемы гелиевых криостатов 414.5 KB
  ОСНОВЫ КОНСТРУИРОВАНИЯ КРИОГЕННЫХ УСТРОЙСТВ Лекция 5 Основные конструктивные схемы гелиевых криостатов 1. Гелиевые криостаты с азотным объемом Основные конструктивные схемы гелиевых криостатов с азотным объемом. приведены на рис. 1.1. Схема криостата изображе
19159. Основные способы получения промежуточных температур 1.44 MB
  ОСНОВЫ КОНСТРУИРОВАНИЯ КРИОГЕННЫХ УСТРОЙСТВ Лекция 67 Основные способы получения промежуточных температур Весь диапазон промежуточных температур т.е. температур отличных от температуры кипения жидкого гелия при атмосферном давлении Т = 42 К по способу достиж...
19160. Низкотемпературные вставки в транспортные гелиевые и азотные сосуды дьюара 219 KB
  ОСНОВЫ КОНСТРУИРОВАНИЯ КРИОГЕННЫХ УСТРОЙСТВ Лекция 8 Низкотемпературные вставки в транспортные гелиевые и азотные сосуды дьюара Особую роль в низкотемпературных криогенных устройствах играют вставки в транспортные сосуды Дьюара. Несомненным преимуществом таки...
19161. Неразборные соединения конструкций 101 KB
  ОСНОВЫ КОНСТРУИРОВАНИЯ КРИОГЕННЫХ УСТРОЙСТВ Лекция 910 Неразборные соединения конструкций Конструкционные материалы Для правильного конструирования низкотемпературных устройств необходимо принимать во внимание свойства материалов которые применяются в криог...
19162. Разборные соединения конструкций 1.07 MB
  ОСНОВЫ КОНСТРУИРОВАНИЯ КРИОГЕННЫХ УСТРОЙСТВ Лекция 11 12 Разборные соединения конструкций В разборных вакуумных соединениях необходимо обеспечить герметичность стыка двух соединяемых деталей близкую к герметичности сплошного материала. В месте соприкосновения д