1

Тема: Шаблони функції

Я знаю як створювати перевантажені функції і знаю як створювати шаблони функцій.
Є декілька питань:
1) можна створювати 1 шаблон і використовувати його для декількох функцій?
2) Не зрозумів умову задачі (оригінал на рус.)

Мій переклад:
Написати перевантажені шаблони функцій для знаходження коренів лінійного (a*x + b = 0) і квадратного (a*pow(x,2) + b*x + c = 0) рівнянь. Примітка: в функцію передаються коефіціентів рівнянь.

оригінал:
Написать перегруженные шаблоны функций для нахождения корней линейного (a*x + b = 0) и квадратного (a*x2+b*x + c = 0) уравнений. Замечание: в функции передаются коэффициенты уравнений.

p.s. перевантажені шаблони - це як?

2

Re: Шаблони функції

Шаблон - це template, функція з узагальненим типом... чогось.
Перевантажена функція - це, щиро кажучи, дуже невдала назва, особливо для C++. Мова йде за те, що дві функції із різними параметрами мають однакову назву. Просто в C++ функції розрізняються не тільки за назвою, а й за типом параметрів, ото й все. Є ще перевантаження віртуальних функцій, але то інша історія.

Тобто вам треба створити два шаблони функцій з однаковою назвою, але різними параметрами.

Подякували: Joker, hotHead2

3 Востаннє редагувалося Joker (25.07.2014 21:53:31)

Re: Шаблони функції

я правильно розумію
один шаблон для лінійного, а інший для квадратного?

А як що до 1 питання

4

Re: Шаблони функції

Так, правильно.
Стосовно ж "одного шаблону для декількох функцій" - то або ви щось неправильно сформулювали, або щось неправильно розумієте, або я неправильно розумію, що ви хочете спитати. Одне твердження template може застосовуватися, очевидно, тільки для однієї функції чи одного класу; але шаблонізована функція може бути використана із будь-яким типом, з яким вона матиме сенс.
Шаблон - це більш цивілізована форма параметризованих макросів #define, можна сказати так.

Подякували: Joker1

5

Re: Шаблони функції

Тобто для 2 різних функцій, які працюють з різиними типами, потрібно 2 template.
Дякую

6

Re: Шаблони функції

Для 2 функцій, що працюють з різними агрументами, потрібні різні шаблони.
Для 2 функцій, що однаково працюють з різними типами, потрібен один шаблон.

Подякували: Joker1