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

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

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

Сложение матриц - C++

12.02.2014, 22:03. Просмотров 660. Ответов 1
Метки нет (Все метки)

Здравствуйте, написал класс Matrix, реализовал перегрузку оператора+ (как метод). В классе я храню int** data, саму матрицу создаю динамически в конструкторе. Реализовал перегрузку оператора= (понтятно для чего)
Наткнулся на некторую проблему.

В мейне у меня есть где-то что-то вроде.

C++
1
A = B + C; //type Matrix
Т.е. оператор+ должен венруть новую матрицу в эту часть программы. Собственно вопрос в том, как это сделать.

Если так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
Matrix Matrix::operator+ (const Matrix& b) const
    {
    if (N == b.GetN () && M == b.GetM ()) //N, M - размеры матрицы
        {
        Matrix C (N, M);
        for (int i = 0; i < N; ++i)
            for (int j = 0; j < M; ++j)
                C.Set (i, j, Get (i, j) + b.Get (i, j));
 
        return C;
        }
    }
То после строчки
C++
1
2
return C;
        }
Вызовется деструктор локальной перемнной С, и та динамич. матрица перестанет существовать.

Т.е.
C++
1
A + B = C; //A принимает мусор
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2014, 22:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сложение матриц (C++):

Сложение матриц - C++
Разработать программу сложения матриц (максимальная размерность 10). Элементы матриц вещественные числа двойной точности.

Сложение матриц - C++
Помогите, пожалуйста. Даны две матрицы размером . Надо выполнить их сложение

Сложение двух матриц - C++
Доброго времени суток Помогите пожалуйста в написании программы. Пользователь вводит Матрицу А(размер 2х2) и Матрицу В(размер 2х2). ...

Сложение двух матриц - C++
Даны две матрицы 2х2: а и е, которые нужно сложить. У меня при сложении в результате выводит только первый столбец, помогите найти ошибку)...

Сложение и умножение матриц - C++
Даны матрицы A,B,C порядка n. Найти матрицу D=(A+B)C

Сложение двух матриц - C++
помогите пожалуйста написать программу на языке С ++. даны два двумерных массива. нужно найти их сумму.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
12.02.2014, 22:19 #2
Цитата Сообщение от lulusa Посмотреть сообщение
Вызовется деструктор локальной перемнной С,
До этого при выполнении операции return производится копирование матрицы C
(копиконструктор надо реализовать правильно, чтобы он копировал значения матрицы)
и уже эта копия передается на возврат значения.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2014, 22:19
Привет! Вот еще темы с ответами:

Сложение матриц(классы) - C++
Всем привет. Есть задание сделать сложение матриц, но при этом определив класс вещ-ых матриц. вот что получилось. ТОлько вопрос. как это...

Сложение двух матриц - C++
Сложение двух матриц. Приведите пожалуйста простой пример...

Сложение и умножение матриц - C++
Даны квадратные матрицы A(nxn), B(nxn), C(nxn) написать программу вычисления (A+B)*C. Помогите со сложением и умножением Вот мои...

Сложение и вычитание вещественных матриц - C++
ПОМОГИТЕ ПОЖАЛУЙСТА С ЗАДАЧКОЙ, СРОЧНО НУЖНО БЫЛО!!!!!!!!!, ВОТ И САМА ЗАДАЧКА.... Написать и протестировать функцию для сложения и...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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