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

{

тело функции

}


 

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

50205. Цветоводство. Тексты лекций 2.11 MB
  Целью изучения дисциплины является профессиональная подготовка инженера по специальности «Садово-парковое строительство» в области ассортимента и агротехники выращивания цветочных культур. В результате изучения дисциплины студент должен знать ассортимент декоративных травянистых растений, используемых в озеленении интерьеров и цветочном оформлении открытых пространств; декоративные качества и эколого-биологические особенности растений, их требования в культуре; технологию выращивания и возможности использования различных культур в цветочном оформления и на срезку.
50206. ДОСЛІДЖЕННЯ ДИФРАКЦІЇ ЕЛЕКТРОНІВ НА КРИСТАЛІЧНІЙ ГРАТЦІ 623.5 KB
  Згідно сучасних уявлень тверді тіла поділяють на кристалічні аморфні склоподібні і органічні речовини. Кристали тверді тіла які мають правильне періодичне розміщення складових їх частинок. В структурному відношенні кристал можна розглядати як тіло що складається з окремих паралелепіпедів повторюваності елементарних комірок.
50207. Нечеткая логика 68 KB
  Различать степени изменения лингвистической переменной в трех степенях – «Очень – Нормально – Слабо» Б. Изменять порог чувствительности. 1. Гадость – сойдет – неплохо
50208. Вивчення дисперсійної спектральної призми 242.5 KB
  Гоніометр Г5М складається з таких основних частин: коліматора суміщеного з ртутною лампою яка захищена металевим кожухом поворотного столика зорової труби та основи гоніометра основа гоніометра; обєктив коліматора; об'єктив зорової труби; окуляр зорової труби; відліковий мікроскоп;...
50209. Нечеткая логика 68 KB
  Различать степени изменения лингвистической переменной в трех степенях – «Очень – Нормально – Слабо» Б. Изменять порог чувствительности. 1. Казанова – Генрих VIII – верный лебедь
50210. Визначення продуктивності ультразвукового прошивального верстата 476.5 KB
  Плакати: загальний вид ультразвукового верстата й схема його роботи. Призначення ультразвукового прошивального верстата Ультразвуковий прошивальний верстат призначений для виготовлення або доведення отворів різної форми в деталях із твердих тендітних матеріалів як струмопровідних так і діелектриків стекло сітали кераміка ферити кремній германій рубін алмази тверді сплави й ін. Опис принципової схеми ультразвукового прошивального верстата мал.
50211. Визначення довжини світлової хвилі за допомогою біпризми Френеля 459 KB
  2 Прилади і матеріали Біпризма Френеля джерело світла лампочка розжарювання розсувна щілина оптичний мікроскоп вертикальна масштабна шкала лінійка світлофільтри Опис установки Для пояснення методу отримання інтерференційної картини за допомогою біпризми Френеля необхідно використати оптичну схему яка наведена на рис. 1 1 джерело світла із змінними світлофільтрами; 2 конденсорна лінза; 3 розсувна щілина; 4 біпризма Френеля; 5 оптичний мікроскоп. Увімкнути джерело світла 1 в мережу 220 В.
50212. Вивчення особливостей коливальної системи ультразвукових верстатів і визначення змін швидкості робочої подачі інструмента при прошиванні отвору 139.5 KB
  Перетворювача електричних коливань у механічні; Концентратора трансформатора пружних коливань який збільшує амплітуду коливань перетворювача та погоджує параметри перетворювача та навантаження; Виконують роль ланок резонансної довжини при пере дачі коливань від перетворювача інструмента та в робочу зону. Амплітуда коливань торця перетворювача звичайно не більше за 5.
50213. Дослідження властивостей напівпровідників методом ефекту Холла 75 KB
  Схема вимірювання питомого опору зразка і холлівської різниці потенціалів зображена на рис. досліджуваний зразок; 1 зонд для вимірювання холлівської напруги; 2 зонд для вимірювання питомого опору. Зразки на яких проводяться вимірювання мають форму паралелепіпеда і закріплені на спеціальному держаку. Зонди для вимірювання питомого опору та холлівської напруги припаюють до зразка припоєм підібраним так щоб зменшити перехідний опір.