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

Ошибка при перегрузке + - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Eclipse +GDB: проблемы с отладкой http://www.cyberforum.ru/cpp-beginners/thread349946.html
В коде в начале идет инициализация переменных, а потом считывание строки: cout << "Input expression to convert > "; cin >> in_string; Включаю режим отладки нажатием клавиши F11. Иду по шагам (step over). После прохождения строки с cout строка не выводится (и в консоли не выдается вообще ничего), а при прохождении строки с cin поток (как пишет эклипс) уходит в состояние Running:Step и...
C++ Классы Написал программу расстояние между двумя точками с использованием классов. Во втором хочу использовать элемент первого. Не работает. Как это сделать? #include <iostream> #include <cmath> using namespace std; class point // класс описывающий точку и вектор { public: double x,y; }; http://www.cyberforum.ru/cpp-beginners/thread349937.html
обработка символьной и строковой информации C++
Изменить текст, чтоб слова разделились ровно одним пробелом.
C++ Найти максимальный простой делитель числа
#include <iostream> using namespace std; int main () {int i,j; int a; double x,y,max; cout << ("vvedi x"); cin >> x ; y=x/2;
C++ Какой язык программирования выбрать? http://www.cyberforum.ru/cpp-beginners/thread349876.html
Хотел спросить у модератора, но не понял как отправить личное сообщение. Подходящего раздела под вопрос тоже не нашлось. В программировании я нифига не понимаю. Нужно написать программу, и для этого я готов заняться изучением языка программирования. Вот только какой язык будет более подходящим? Программа должна сохранять 10 кадров в секунду из видеопотока. Каждый кадр сравнивается с предыдущим...
C++ проблема с сетевой папкой имеется локальная сеть соединенная через hub к ней подсоединено несколько компов. на одном из которых есть папка с общим доступом (ОС linux ubuntu) и есть ноут (ОС Win Vista) на котором эта папка была подключена. где-то с неделю все было хорошо и красиво а потом начались глюки: папка открывается можно открыть любой документ, но после этого доступ к файлам отрубается невозможно открыть ни один... подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
10.09.2011, 14:46     Ошибка при перегрузке +
Перегружать + нужно для 2-х вариантов
матрица + число
матрица + матрица

Сейчас накидаю код

Добавлено через 3 минуты
Лови - тут умножение и деление (выжимки из моего CMatrix)
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#ifndef CMATRIX_H
#define CMATRIX_H
 
#include <math.h>//Подключение прототипов математических функций
 
class CMatrix
{   
public:
    int m, n;
    double **MATRIX;
    CMatrix(){m = 0; n = 0; MATRIX = NULL;}
    CMatrix(int _m, int _n)
    {
        m = _m; 
        n = _n; 
        MATRIX = new double * [m*n];
        for(int i = 0,j; i < _m; i++)
        {
            MATRIX[i] = new double[n];
            for(j = 0;j < _n; j++)
                MATRIX[i][j] = 0;
        }
    }
    CMatrix(int _m, int _n, double ** _MATRIX)
    {
        m = _m; 
        n = _n;
        MATRIX = _MATRIX;
    }
 
    CMatrix operator+(double val);//матрица + число
    CMatrix operator*(double val);//матрица * число
 
    CMatrix operator+(CMatrix val);//матрица + матрица
    CMatrix operator*(CMatrix val);//матрица * матрица
};
 
CMatrix
CMatrix::operator +(double val)
{
    for(int i = 0,j; i < m; i++)
        for(j = 0; j < n; j++)
            MATRIX[i][j] += val;
    return CMatrix(m,n,MATRIX);
}
 
CMatrix
CMatrix::operator *(double val)
{
    for(int i = 0,j; i < m; i++)
        for(j = 0; j < n; j++)
            MATRIX[i][j] *= val; 
    return CMatrix(m,n,MATRIX);
}
 
CMatrix
CMatrix::operator+(CMatrix val)
{
    if(val.m == m && val.n == n)
    {
        for(int i = 0,j; i < m; i++)
            for(j = 0; j < n; j++)
                MATRIX[i][j] += val.MATRIX[i][j]; 
    }
    return CMatrix(m,n,MATRIX);
}
 
CMatrix
CMatrix::operator*(CMatrix val)
{
    CMatrix RetVal;
    if(n == val.m)
    {
        RetVal = CMatrix(m,val.n);
        for(int i = 0,j,s; i < m; i++)
            for(j = 0; j < val.n; j++)
                for(s = 0; s < n; s++)
                    RetVal.MATRIX[i][j] += MATRIX[i][s]*val.MATRIX[s][j];
    }
    return RetVal;
}
 
#endif
 
Текущее время: 21:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru