Страница 1 из 1
Обобщенная арифметика/вычисления.
Добавлено: 15 ноя 2004, 17:53
versus
Что такое $subj? Страуструп и Буч что-то говорят об этом, но ни у них, ни у гугла конкретики найти не удалось. Кто-нибудь может подкинуть ссылку - почитать про этого зверя?
Добавлено: 15 ноя 2004, 18:04
Romeo
Если честно, то я не понял даже из какой это области.
Добавлено: 15 ноя 2004, 18:07
versus
Ну, очевидно, это каким-то образом связано с полиморфизмом, механизмом шаблонов в С++.
Тот же Буч пишет:
http://www.krasu.ru/server/docs/buch/ch03.htm
Параметризованные классы полезны далеко не только для создания контейнеров. Например, Страуструп отмечает их значение для обобщенной арифметики [48].
Добавлено: 15 ноя 2004, 18:23
Kolinus
Так вопрос сводится к тому что такое и зачем нужны параметризованные классы ?
Добавлено: 15 ноя 2004, 18:39
versus
нет, вопрос сводится к тому что такое обобщенная арифметика.
неужели речь идет о банальной функции принимающей некоторый параметризированный список (обобщение) и производящая над ним некоторые вычисления (арифметика), типa:
Код: Выделить всё
#include <vector>
#include <iostream>
using namespace std;
template <class T>
T sum(vector<T>& vec)
{
T res = T();
for (int i = 0; i < vec.size(); i++)
res += vec[i];
return res;
}
int main()
{
vector<int> vec(10);
for (int i = 0; i < vec.size(); i++)
vec[i] = i;
cout << sum(vec);
return 0;
}
?
Но это же всего навсего шаблонная функция, не более того. Зачем вдруг понадобилось вводить новый термин (обобщенная арифметика/вычиление)
Добавлено: 15 ноя 2004, 18:40
Romeo
Извеняюсь, просто не сразу понял что обозначает символ "$subj". По теме могу посоветовать хорушую книгу "Effective C++ Second Edition" by Scott Meyers, на английском, разумеется. Электронного варианта не встречал. Также отвечу на любые конкретные вопросы.
Добавлено: 15 ноя 2004, 18:44
Romeo
Нет, здесь не в шаблонах дело, а скорее в невных преобразованиях типов и квалификаторе explicit
