Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
72 / 1 / 3
Регистрация: 28.11.2009
Сообщений: 78

Перегрузка оператора +

11.11.2010, 00:40. Показов 3591. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Осуществляю перегрузку оператора +. и вот почему-то член класса s меняет свою длину с 4 до 7
и мне вот это не понятно.. Подскажите, пожалуйста!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <string.h>
 
using std::cout;
using std::cin;
using std::endl;
 
class Arifm
{
public: 
    char s[4];
    Arifm(){};
    Arifm(char *xy)
    {
        strcpy(s,xy);
    }
    void show()
    {
        cout<<s<<endl;
    }
    Arifm operator+ (Arifm y);
};
 
Arifm Arifm::operator+ (Arifm y)
{
    Arifm x;
    
    x.s[0] = s[0] + y.s[0]-48;
    
    x.s[1] = s[1] + y.s[1]-48;
    
    x.s[2] = s[2] + y.s[2]-48;
    
    return x;
}
 
int main()
{
    char x1[4] = "111", y1[4] = "111";
    
    Arifm x(x1),y(y1);
    
    x = x + y;
    
    x.show();
        
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.11.2010, 00:40
Ответы с готовыми решениями:

Перегрузка оператора []
Всем привет! Как можно перегрузить оператор так, чтобы к нему можно было обращаться так: class_arr = 5; Где class_arr - переменная...

Перегрузка оператора ==
нужно сравнить 1) объект класса abc с объектом класса abc1 2) объект класса abc с другим объектом класса abc 3) объект класса abc1...

Перегрузка оператора +
String String::operator + (String &amp; sg2) { String tmp; tmp.str = new char ; strcpy (tmp.str, str); strcat (tmp.str, sg2.str);...

25
 Аватар для OdNairy
8 / 8 / 2
Регистрация: 07.02.2010
Сообщений: 22
12.11.2010, 14:10
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Kastaneda Посмотреть сообщение
при x=x+y после вашего оператора будет так x=x
Эм... Нет. В той строке, что вы написали, сразу вызовется оператор +, вернёт полученное значение ( кстати, там стоит указать ссылку, а не просто объект), и эта сумма придёт как правый операнд в знак равно.
Хотя в данной реализации знака равно, вообще ничего не делается =), т.е. значение слева просто не изменяется. В этом и есть ошибка, я думаю.
0
 Аватар для Kastaneda
5232 / 3206 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
12.11.2010, 14:28
Цитата Сообщение от OdNairy Посмотреть сообщение
т.е. значение слева просто не изменяется.
Так а я о чем? При такой реализации перегрузки оператора "=" вызываемый объект (т.е. x) в итоге будет равен самому себе. "x=x"
0
72 / 1 / 3
Регистрация: 28.11.2009
Сообщений: 78
12.11.2010, 20:16  [ТС]
выдаёт 22222111, если убрать перегрузку =
0
72 / 1 / 3
Регистрация: 28.11.2009
Сообщений: 78
13.11.2010, 20:17  [ТС]
вру! там только 22111
0
 Аватар для Kastaneda
5232 / 3206 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
13.11.2010, 20:31
Очевидно проблема в вашем методе show(), т.к. не может массив char s[4] печатать 5 символов.
0
72 / 1 / 3
Регистрация: 28.11.2009
Сообщений: 78
13.11.2010, 23:03  [ТС]
не может. исправил добавив в перегрузку строчку
C++
1
x.s[3] = NULL;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.11.2010, 23:03

Перегрузка оператора []
Здравствуйте. Пробую перегрузить оператор . template &lt;class Element&gt; class List { public: struct Node { Element el; ...

Перегрузка оператора
Доброго времени суток. Столкнулся с проблемой перегрузки оператора &quot;++&quot; выдает ошибку в первой строке: postfix ‘const Counter...

Перегрузка оператора +
Добрый день, товарищи программиста. Вопрос такой. Я перезагружаю оператор + на языку с++, и написал класс и метод class Complex ...

Перегрузка оператора ()
кто может подсказать как создать перегрузку что бы можно было работать с амссивввом в таком ввиде mass(3)=2 а не mass=2; если можно...

Перегрузка оператора -=
Добрый день, товарищи программиста. Вопрос такой. у перезагружаю оператор -= на языку с++, и написал класс и метод const double...


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru