Обобщенная арифметика/вычисления.
Модераторы: Naeel Maqsudov, C_O_D_E
Что такое $subj? Страуструп и Буч что-то говорят об этом, но ни у них, ни у гугла конкретики найти не удалось. Кто-нибудь может подкинуть ссылку - почитать про этого зверя?
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Если честно, то я не понял даже из какой это области.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ну, очевидно, это каким-то образом связано с полиморфизмом, механизмом шаблонов в С++.
Тот же Буч пишет:
http://www.krasu.ru/server/docs/buch/ch03.htm
Тот же Буч пишет:
http://www.krasu.ru/server/docs/buch/ch03.htm
Параметризованные классы полезны далеко не только для создания контейнеров. Например, Страуструп отмечает их значение для обобщенной арифметики [48].
Так вопрос сводится к тому что такое и зачем нужны параметризованные классы ?
В SAD - все в SAD.
нет, вопрос сводится к тому что такое обобщенная арифметика.
неужели речь идет о банальной функции принимающей некоторый параметризированный список (обобщение) и производящая над ним некоторые вычисления (арифметика), типa:
?
Но это же всего навсего шаблонная функция, не более того. Зачем вдруг понадобилось вводить новый термин (обобщенная арифметика/вычиление)
неужели речь идет о банальной функции принимающей некоторый параметризированный список (обобщение) и производящая над ним некоторые вычисления (арифметика), тип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;
}
Но это же всего навсего шаблонная функция, не более того. Зачем вдруг понадобилось вводить новый термин (обобщенная арифметика/вычиление)
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Извеняюсь, просто не сразу понял что обозначает символ "$subj". По теме могу посоветовать хорушую книгу "Effective C++ Second Edition" by Scott Meyers, на английском, разумеется. Электронного варианта не встречал. Также отвечу на любые конкретные вопросы.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Нет, здесь не в шаблонах дело, а скорее в невных преобразованиях типов и квалификаторе explicit 

Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.