Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
GoldenId
131 / 130 / 64
Регистрация: 11.11.2010
Сообщений: 770
Записей в блоге: 14
Завершенные тесты: 1
0

Operator +, operator += — какой через какой реализовывать?

25.04.2017, 10:50. Просмотров 162. Ответов 6
Метки (Все метки)

Для
C++
1
2
3
4
5
6
7
class Fraction
{
    // ...
public:
    Fraction operator + ( const Fraction& right ) const;
    Fraction& operator += ( const Fraction& right );
};
как лучше сделать, так:
C++
1
2
3
4
5
6
7
8
9
10
11
Fraction Fraction::operator + ( const Fraction& right ) const
{
    Fraction res( ... );
    // само сложение
    return res;
}
 
Fraction& Fraction::operator += ( const Fraction& right )
{
    return *this = *this + right;
}
или так:
C++
1
2
3
4
5
6
7
8
9
10
11
Fraction Fraction::operator + ( const Fraction& right ) const
{
    Fraction res( *this );
    return res += right;
}
 
Fraction& Fraction::operator += ( const Fraction& right )
{
    // прибавление right к *this
    return *this;
}
?

Вернуться к обсуждению:
Operator +, operator += — какой через какой реализовывать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2017, 10:50
Готовые ответы и решения:

Вызов operator[] через operator[] const
Перелистывал Майерса, наткнулся на код, подскажите пожалуйста почему он...

Реализация operator + через operator +=
внутри следующей темы возник вопрос, ответ на который так и не был получен:...

Class & operator's |Error: undefined reference to operator
Компилирует нормально, но когда хочу использовать оператор выдает...

operator char() или operator int()
Здорова госпдо! Снова ничо не ясно как всегда. Разбираю программку из книги...

Перегрузить операторы operator+() и operator*() в пользовательском классе "Комплексное число"
Здравствуйте. Предлагаю заняться арифметикой. Создал прослейший класс,...

6
Другие темы раздела
C++ Используя генератор случайных чисел сформировать матрицу Н размером http://www.cyberforum.ru/cpp-beginners/thread1967986.html
Используя генератор случайных чисел, cформировать матрицу Н размером 7х8 из вещественных чисел; Вывести матрицу на экран; Получить новую матрицу С из матрицы Н, путем деления всех элементов матрицы...
C++ Работа с датой: по введенной дате определить время года, номер декады месяца написать программу установки и вывода даты, используя понятие класса. По введенной дате определить время года, номер декады месяца. Предусмотреть: - возможность ввода даты 3 числами (день, месяц,... http://www.cyberforum.ru/cpp-beginners/thread1967985.html
C++ Ошибка в использовании бинарного оператора
Доброго времени суток коллеги. Знакомлюсь с языком C++ по книге Герберта Шилдта. Возник вопрос который в книге не написан. Не могу понять по какой причине возникает ошибка(dev c++) invalid...
Ссылочные типы данных + списки C++
Написал код стандартным образом, нужно этот код теперь переделать с использованием ссылочных типов данных и с использованием списков. #include <iostream> #include <ctime> #include <windows.h>...
C++ Получить возращаемое значение из виртуальной функции из класса наследника http://www.cyberforum.ru/cpp-beginners/thread1967959.html
Здравствуйте, в общем столкнулся непониманием как, получить значение из виртульной функции: class Pointers{ public: virtual GLfloat get_x_cell_position_player(GLshort num_player){ }; } ...
C++ Сформировать массив из количества положительных элементов соответствующих строк матрицы Задана целая прямоугольная матрица. Сформировать одномерный массив, элементами которого являются количество положительных элементов соответствующих строк матрицы. подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru