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

Перегрузка оператора умножения числа на матрицу - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Некорректность работы программы при считывании текстовых данных с файла http://www.cyberforum.ru/cpp-beginners/thread837057.html
Здравствуйте!) Помогите, пожалуйста, решить данную проблему... Почему при следующем варианте кода, программа просто-напросто не работает и вылетает. В чём ошибка при считывании? Подскажите,...
C++ Работа с tinyxml ошибки LNK 2019 и LNK 2001 всем привет! скачал архив tinyxml, разархивировал в папку проекта затем написал следующий код: #include "stdafx.h" #include "tinyxml/tinyxml.h" #include <iostream> int _tmain(int argc,... http://www.cyberforum.ru/cpp-beginners/thread837047.html
C++ Узнать указывает ли указатель
Доброго времени суток. Постановка задачи такова: есть указатель на массив, надо удалить массив, а потом создать новый, но не ясно указывает ли указатель уже куда-то. Как с этим побороться? Спасибо!
C++ Сортировка
Нужно написать алгоритмы для Selection, Insertion, Shell, Quick, Merge, Heap сортировок для любых типов данных. Например, сравнить машины и их объемы двигателей. Сам начинающий, не знаю, как сделать....
C++ Как обратиться к элементам массива через указатель? http://www.cyberforum.ru/cpp-beginners/thread836995.html
// 2 зачет.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> using namespace std; int main() {setlocale ( LC_ALL, "Russian" );
C++ Клас колода карт Класс CardDeck (колода карт). Класс сохраняет массив из 32 карт (cards), а также текущую карту (currentCard). Надо написать функцию для перемешивание карт, функцию выбор 6 карт, а также функцию... подробнее

Показать сообщение отдельно
abit
264 / 262 / 33
Регистрация: 03.02.2013
Сообщений: 730
14.04.2013, 00:37
что-то вы только затуманили картину )))

я так понимаю этот оператор должен умножать double число на матрицу и возвращать новую матрицу (т.к. arg_matrix у вас const) для этого вам надо таки создать эту самую новую матрицу, внести в неё все элементы из старой

во первых где конструктор по умолчанию... ну допустим превратим в него один из двух конструкторов выше
и создадим через первый конструктор матрицу

C++
1
2
3
4
matrix::matrix operator*(const double & arg_double, const matrix & arg_matrix)
{
    matrix a(arg_matrix.rows,arg_matrix.columns);
...
далее там пройти циклом эту матрицу a и каждый её элемент перемножить на arg_double

и потом
C++
1
2
    return a;
}
по этому return вызовется конструктор копирования, который у вас
C++
1
matrix::matrix(matrix &copy);//конструктор копирования
перенесёт эту матрицу в вызвавшую программу, т.e. для примера

C++
1
2
3
4
void main()
{
   matrix a,b,c;
   c = a*b;
в матрицу c
и следом автоматом вызовется деструктор для matrix a, т.к. автоперменная перестала существовать

логика тут такая по идее должна быть...

а у вас что?
C++
1
return ((arg_matrix)*(arg_double));
что это вообще такое?
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru