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

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

Войти
Регистрация
Восстановить пароль
 
enoka
0 / 0 / 0
Регистрация: 25.12.2008
Сообщений: 19
#1

Не работает operator + - C++

20.04.2011, 11:36. Просмотров 388. Ответов 5
Метки нет (Все метки)

пишу программку, а оператор+ не работает как надо, вместо суммы выдаёт всякий бред....может кто знает, что здесь не так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Matrix Matrix::operator+(const Matrix second)
{
    if(m!=second.m || n!=second.n)
     {
      cerr<<"Raznyj razmer"<<endl;
      return Matrix();
     }
    else
    {
        Matrix rezult(*this);
 
        for(int i=0;i<n;i++)
            for(int j=0;j<m;j++)
                 rezult.matr[i][j]=matr[i][j]+second.matr[i][j];
        return rezult;
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2011, 11:36     Не работает operator +
Посмотрите здесь:

C++ operator[]
C++ operator
operator< C++
Operator>> C++
operator >> C++
Не работает operator<< шаблонного класса Vector C++
operator() C++
C++ Как работает operator "->"
Почему не работает operator ==? C++
C++ Operator +
Не работает operator<< C++
C++ Вызов operator[] через operator[] const

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
garkeP91
50 / 50 / 5
Регистрация: 24.10.2010
Сообщений: 131
20.04.2011, 12:23     Не работает operator + #2
Цитата Сообщение от enoka Посмотреть сообщение
C++
1
rezult.matr[i][j]=matr[i][j]+second.matr[i][j];
Может, здесь вот так надо:
C++
1
rezult.matr[i][j]+=second.matr[i][j];
silent_1991
Эксперт С++
4949 / 3025 / 149
Регистрация: 11.11.2009
Сообщений: 7,025
Завершенные тесты: 1
20.04.2011, 12:28     Не работает operator + #3
А вы матрицы-то заполнили? "Всякий бред" может быть мусором в не инициализированных ячейках входных матриц.

Добавлено через 58 секунд
garkeP91, разницы особой не будет, разве что лишнее копирование при инициализации rezult через конструктор копии.
enoka
0 / 0 / 0
Регистрация: 25.12.2008
Сообщений: 19
20.04.2011, 12:43  [ТС]     Не работает operator + #4
матрицы заполнены в конструкторе, они нормально выводятся, но результат сложения бредовый....
silent_1991
Эксперт С++
4949 / 3025 / 149
Регистрация: 11.11.2009
Сообщений: 7,025
Завершенные тесты: 1
20.04.2011, 12:57     Не работает operator + #5
А конструктор копии правильно написан? А то вы вторую матрицу по значению передаёте, может, конструктор копии криво отрабатывает?
enoka
0 / 0 / 0
Регистрация: 25.12.2008
Сообщений: 19
20.04.2011, 18:14  [ТС]     Не работает operator + #6
Цитата Сообщение от silent_1991 Посмотреть сообщение
А конструктор копии правильно написан? А то вы вторую матрицу по значению передаёте, может, конструктор копии криво отрабатывает?
спасибо)исправила конструктор копирования и заработало))
Yandex
Объявления
20.04.2011, 18:14     Не работает operator +
Ответ Создать тему
Опции темы

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