72 / 1 / 3
Регистрация: 28.11.2009
Сообщений: 78

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

11.11.2010, 00:40. Показов 3415. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Нейтральные знания ..., ... чистая наука. Пока что-то проходит модерацию на Хабре, стоит развить мысль ...
Hrethgir 20.07.2026
К таким радикальным взглядам я конечно в той публикации не приходил, но чтобы скоротать вечер, решил углубиться немного. 1. Почему показания термометра заряжены целью? Цель заложена в самом. . .
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения. https:/ / habr. com/ ru/ sandbox/ 295048/ По ссылке 403. Не очень информативно такую ссылку постить. Запись от Usaga размещена Сегодня в 06:46 . . .
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0) Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона Уважаемые коллеги! В продолжение. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru