Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
AceOfSpades
41 / 40 / 3
Регистрация: 14.08.2012
Сообщений: 244
#1

Как правильно перегрузить оператор для шаблона класса - C++

09.04.2013, 21:11. Просмотров 287. Ответов 1
Метки нет (Все метки)

Имеется такой шаблон:
C++
1
2
3
4
template<int Low = 0, int High = 1000>
class Diapazon
{
};
Внутри него много всего, что уже работает, но я не могу перегрузить операции + - * / для случая, когда слева число, а справа объект этого класса.

Я пишу вне класса:
C++
1
2
3
4
Diapazon<>& operator+(int a, Diapazon& b)
{
    return b + a;
}
Но этот код работает только для переменных, объявленных так:
Diapazon<> a = 5;
А для таких Diapazon<0, 140> b = a + 34 уже не работает.
Как исправить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2013, 21:11     Как правильно перегрузить оператор для шаблона класса
Посмотрите здесь:
Как перегрузить оператор для своего класса? C++
Как перегрузить оператор для класса. Хоть убейте, не могу C++
C++ Перегрузить для класса оператор ==
C++ Как правильно перегрузить оператор [] =
Перегрузить для класса оператор == (много ошибок) C++
Перегрузить оператор () для пользовательского класса Matrix C++
Как перегрузить оператор "+" для шаблонного класса, инстанцированного разными типами? C++
C++ Как перегрузить оператор [][] для разреженной матрицы?
C++ Как перегрузить оператор индексации для указателя
Как перегрузить оператор [] для двумерного массива? C++
Как перегрузить оператор вывода в поток для вектора? C++
C++ Как правильно производится наследование элементов от шаблона класса? В чем ошибка?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
1641 / 1269 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
09.04.2013, 22:47     Как правильно перегрузить оператор для шаблона класса #2
C++
1
2
3
4
5
template<int A, int B>
Diapazon<A, B> operator+(int const a, Diapazon<A, B> const& b)
{
    /**/
}
Yandex
Объявления
09.04.2013, 22:47     Как правильно перегрузить оператор для шаблона класса
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru