Страница 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 :)