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

После перегрузки операторов не работает cout - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Одномерные массивы http://www.cyberforum.ru/cpp-beginners/thread131709.html
подскажите пожалуйста Даны две строки s1 и s2. Пусть w – первое из слов строки s1, которое есть и в строке s2. Найти слово, предшествующее первому вхождению w в s1.
C++ 3d движок Приветствую всех. Есть следующая идея: Создать свой 3d движок да базе программирования на си++. Опыть программирования есть как на Делфи, так и на Си++. так же на PHP и ActionScript и прочей ерунде. Во флэш создавал игры, теперь появилась мысль идти дальше. Прошу дельного совета или пару ссылочек на соответствующую литературу. Заранее всем спасибо. http://www.cyberforum.ru/cpp-beginners/thread131708.html
C++ Найти площадь S равнобочной трапеции с основаниями a и b и углом при большем основании
Составить программу, реализующую алгоритм следующей геометрической задачи. Организовать в программе ввод соответствующих данных и вывод результата с поясняющими сообщениями для пользователя. Найти площадь S равнобочной трапеции с основаниями a и b и углом при большем основании. Добавлено через 26 минут помогите пожалуйста
C++ сортировка файлов
реализовать сортировку файла input.txt методом двухпутевого слияния. помогите пожалуйста)
C++ выполнить в виде функции, обратите внимание http://www.cyberforum.ru/cpp-beginners/thread131675.html
в одномерном массиве, состоящем из n вещественных элементов, вычислить: 1)минимальный элемент массива 2)сумму элементов массива, расположенных между первым и последним положительным элементами Преобразовать массив таким образом, чтобы сначала располагались все элементы, равные нулю, а потом - все остальные Буду очень благодарен, т.к. в с++ не рублю
C++ Работа с файлом Помогите если не затруднит. Есть текстовый файл(примерно такой): A asdada qweqw A ijiijij nvbjk rtrt A подробнее

Показать сообщение отдельно
stv
26 / 26 / 6
Регистрация: 05.03.2010
Сообщений: 171
18.05.2010, 18:21     После перегрузки операторов не работает cout
Здравствуйте. После использования перегруженного оператора + перестает работать оператор вывода. Почему такое возможно? Или у меня ошибка?
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
 
class Matrix
{
    private:
        long int **Matr;
        long int row;
        long int col;
 
        void Create()
        {
            Matr = new long int*[row];
            for (int i=0; i < row; i++)
                Matr[i] = new long int[col];
        }
 
    public:
        // constructors and destructor
        Matrix(): row(5), col(5) { Create();}
        Matrix(long int i): row(i), col(i) { Create(); }
        Matrix(long int i, long int j): row(i), col(j) { Create(); }
        ~Matrix()
        {
            for (int i=0; i < col; i++)
                delete[] Matr[i];
            delete[] Matr;
        }
 
        // methods
        long int& element(long int i, long int j)
        {
            if (i < row && j < col)
                return Matr[i][j];
            else
                cout << "Error: 1";
        }
 
        void MultiplyBy(long int x)
        {
            for(int i=0; i<row; i++)
                for(int j=0; j<col; j++)
                    Matr[i][j] *= x;
        }
 
        void Display()
        {
            for(int i=0; i<row; i++)
            {
                for(int j=0; j<col; j++)
                {
                    cout.width(4);
                    cout << Matr[i][j];
                }
                cout << endl;
            }
        }
        void SetRandom()
        {
            srand(time(NULL));
            for(int i=0; i < row; i++)
            for(int j=0; j < col; j++)
                Matr[i][j] = rand() % 1000;
        }
        
        Matrix operator+ (Matrix &m)
        {
            if (m.row != row || m.col != col) 
            {
                cout << "Error! operator + \n";
                return (*this);
            }
 
            for(int i=0; i < m.row; i++)
            for(int j=0; j < m.col; j++)
                (*this).element(i,j) += m.element(i, j);
            return (*this);
        }
        Matrix operator- (Matrix &m)
        {
            if (m.row != row || m.col != col) 
            {
                cout << "Error! operator + \n";
                return (*this);
            }
 
            for(int i=0; i < m.row; i++)
            for(int j=0; j < m.col; j++)
                (*this).element(i,j) -= m.element(i, j);
            return (*this);
        }   
        Matrix operator= (Matrix &m)
        {
            if (m.row != row || m.col != col) 
            {
                cout << "Error! operator + \n";
                return (*this);
            }
            for(int i=0; i < m.row; i++)
            for(int j=0; j < m.col; j++)
                (*this).element(i,j) = m.element(i, j);
            return (*this);
        }
};
 
 
 
int main()
{
    Matrix a(5), b(5), c(5);
    a.SetRandom();
    b.SetRandom();
    a.Display();
    cout << endl;
    b.Display();
    cout << "test" << endl;
    c = a + b;
    c.Display();
    return 0;
}
Последнее, что выводится на экране - "test". Помогите, пожалуйста.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru