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

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

Восстановить пароль Регистрация
 
enoka
0 / 0 / 0
Регистрация: 25.12.2008
Сообщений: 19
20.04.2011, 11:36     Не работает operator + #1
пишу программку, а оператор+ не работает как надо, вместо суммы выдаёт всякий бред....может кто знает, что здесь не так?
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
operator char() или operator int() C++
Не работает operator<< шаблонного класса Vector C++
operator() C++
C++ Expected init-declarator before "operator".expected `,' or `;' before "operator"
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
garkeP91
49 / 49 / 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
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 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
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 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 +
Ответ Создать тему
Опции темы

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