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

Перегрузка operator+ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ класс srring http://www.cyberforum.ru/cpp-beginners/thread79201.html
задача - написать программу на C++ с перегрузкой функций ввода, вывода, сложения 2х строк и вывода букв из итоговой (сложенной) стоки с конструктором и деструктором. у меня возникают сложности с...
C++ Статические массивы Перевести в веденой строке все буквы из нижнего регистра в верхний?? Пожалуйста помогите!!! Добавлено через 56 секунд Пожалуйста!!! http://www.cyberforum.ru/cpp-beginners/thread79196.html
C++ Получить последовательность по правилу
Добрый вечер!!! Помогите пожалуйста разобраться!!! Имеются действительные числа a1,...,a28; b1,...,b28. Члены последовательности c1,...,c29 связаны с членами данных последовательностей соотношениями...
Как переписать текст из одного файла в другой? C++
Скажите, каким образом можно записать текст в текстовый файл, если текст считывается с другого текстового файла?
C++ Запись цифр в файл. http://www.cyberforum.ru/cpp-beginners/thread79181.html
Как записать int f=5; в файл output.txt, Подскажите функцию или алгоритм.
C++ Справка в МФЦ Привет.. у меня вопрос такого плана.. мне нужно присоединить файлы Справки в уже готовый МФЦ проект..... П.С. я написал программу но преподаватель сказал что нужно, чтобы в ней была справка.. вот... подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1637 / 1009 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
24.12.2009, 18:51
Оператор + должен возвращать новое значение, а не первый операнд. Соответственно, сам первый операнд изменять нельзя. Так что надо в теле оператора описать новый локальный объект того же типа MyClass и вернуть его.
C++
1
2
3
4
5
6
7
8
MyClass MyClass::operator + (const MyClass &c) const
{
MyClass r(*this);
col=2;
if(r.rows != c.rows) throw 1;
for (int i=0; i<r.rows; ++i)
r.vec [i] =pow(r.vec [i]+c.vec [i],2);
return r; }
Ну а с точки зрения идеологии правильнее реализовать оператор += и потом писать так:
C++
1
2
3
4
5
6
MyClass MyClass::operator + (const MyClass &c)
{
    MyClass r(*this);
    r += c;
    return r;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru