lek_8.ppt
- Количество слайдов: 9
Вбудовані функції # include <iostream> using namespace std; inline double square(double x) {return x*x; } int main() { double a, b; double c = 13. 0; a = square (5. 0); b = square (4. 7 + 2. 3); cout << "a= " << a << ", b = " << b << "/n"; cout << c; cout << square (c++) << "/n"; cout << c; return 0; }
Аргументи за замовчуванням void some_function(int size=12, float cost=19. 95) значення за замовчуванням { // тіло функції }
#include <iostream. h> void show_parameters(int a=l, int b=2, int c=3) { cout<< "a " << a << " b " << b << " c" << c << endl; } void main (void) { show_parameters(); show__parameters(1001); show_parameters(1001, 2002, 3003); }
Поліморфізм функцій (перевантаження функцій, function overloading) #include <iostream> using namespace std; int add_values(int a, int b) { return(a + b); } int add_values(int a, int b, int c) { return (a + b + c); } int main (void) { cout << "200 + 801 = " << add_values(200, 801) << endl; cout << "100 + 201 + 700 = " << add_values(100, 201, 700); return 0; }
• Перевантажені функції повинні знаходитися в одній області видимості (інакше відбудеться перекриття аналогічно однаковим іменам змінних у вкладених блоках). • Перевантажені функції можуть мати параметри за замовчуванням, при цьому значення одного й того ж параметра в різних функціях повинні співпадати. • Функції не можуть бути перевантажені, якщо опис їхніх параметрів відрізняється лише модифікатором const або використанням посилання (int, const int; int, int&).
Випадки невиконання перевантаження • Якщо при перевантаженні функції виявилося більше одного варіанта, то виклик вважається неоднозначним. Неоднозначність з’являється під час: a) перетворення типів; b) використанні параметрів-посилань; c) використанні аргументів за замовчуванням.
Шаблони функцій template <class Type> заголовок { /* тіло функції*/ }
template <class Any> void Swap (Any &a, Any &b) {Any temp; temp = a; a = b; b = temp; } template <typename Any> void Swap (Any &a, Any &b) {Any temp; temp = a; a = b; b = temp; }
#include <iostream. h> template<class T> void print. Array(T *array, const int count) for (int i = 0; i < count; i++) cout << array[i] << " "; cout << endl; main() const int a. Count = 5, b. Count = 7, c. Count = 6; int a[a. Count] = {1, 2, 3, 4, 5}; float b[b. Count] = {1. 1, 2. 2, 3. 3, 4. 4, 5. 5, 6. 6, 7. 7}; char c[c. Count] = "HELLO"; cout << “Масив а містить: ” << endl; print. Array(a, a. Count); cout <<“Масив b містить: ” « endl; print. Array(b, b. Count); cout << “Масив с містить: ” << endl; print. Array(с, c. Count); return 0; }
lek_8.ppt