Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
60 / 5 / 3
Регистрация: 01.10.2011
Сообщений: 93
1

Перегрузка оператора +

15.10.2011, 20:32. Показов 854. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите с перегрузкой оператора +.
Нужно сложить два объекта - двумерные массивы.
C++
1
2
3
4
5
6
7
8
9
сArray operator + (сArray &arr) {
 
            int size = arr.getSize();
            cArray temp(size);
            for( int i = 0; i < size; i++) {
                for( int j = 0; j < size; j++)
                    temp[i][j]; = temp[i][j] + arr[i][j];
                           }
        }
something is going wrong :C
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.10.2011, 20:32
Ответы с готовыми решениями:

Перегрузка оператора <<
Доброго времени суток. В общем задача состоит в том, чтобы перегрузить операторы &gt;&gt; и &lt;&lt; для...

Перегрузка оператора <<
Доброе время суток! Возникло осложнение с лабой. Нужно перегрузить оператор &lt;&lt; так, чтобы при...

Перегрузка оператора ==
Ввожу список из элементов char. Оператор == сравнивает только первый элемент списка, подскажите как...

Перегрузка оператора ^
Здравствуйте! Необходимо перегрузить бинарный оператор ^ для транспонирования матрицы. Есть класс...

4
448 / 211 / 21
Регистрация: 07.10.2011
Сообщений: 462
15.10.2011, 20:44 2
temp[i][j]; = temp[i][j] + arr[i][j];
Это что за точка с запятой?
Где функция возвращает значение?
И как вы можете прибавлять к чему-то temp[i][j]? Оно у вас проинициализированно вообще? И операция взятия индекса перегружена?

А еще лучше код класса целиком приложить, чтобы мы не строили догадок, как оно там у вас реализовано
1
60 / 5 / 3
Регистрация: 01.10.2011
Сообщений: 93
15.10.2011, 20:54  [ТС] 3
Класс вряд ли захочется читать кому-то, сам конструктор :
C++
1
2
3
4
5
        сArray(int n) : size(n) {//Конструктор, создающий булевой массив размером nxn
            arr = new bool * [size];
            for(int i = 0; i != n; i++)
                arr[i] = new bool[size];
        }
и перегруженный оператор
C++
1
2
3
4
5
6
7
8
9
        cArray operator + (cArray &arr) {
            int nsize = arr.getSize();
            cArray temp(nsize);
            for( int i = 0; i < nsize; i++) {
                for( int j = 0; j < nsize; j++)
                    temp[i][j] = temp[i][j] + arr[i][j];
            }
            return temp;
        }
Подчеркивает скобочки квадратные, no operators [] matches this operands
0
448 / 211 / 21
Регистрация: 07.10.2011
Сообщений: 462
15.10.2011, 20:59 4
Это потому, что скобки квадратные определены для динамического массива внутри класса, а не для объектов класса

Если массив в классе называется arr, то строка
C++
1
temp[i][j] = temp[i][j] + arr[i][j];
должна выглядеть так
C++
1
temp.arr[i][j] = this->arr[i][j] + arr.arr[i][j];
0
60 / 5 / 3
Регистрация: 01.10.2011
Сообщений: 93
15.10.2011, 21:28  [ТС] 5
Не хотела в общем функция работать, пока не сделал не через объект, а через указатель на него, почему?
0
15.10.2011, 21:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.10.2011, 21:28
Помогаю со студенческими работами здесь

Перегрузка оператора +
Написал для перегрузки оператора + class BoolMatrix { private: int feet; public:...

Перегрузка оператора ==
Создайте класс stroka. Класс должен включать поле (массив) типа char для хранения строки. Класс...

Перегрузка оператора ==
Пытаюсь перегрузить оператор == . Делаю так: В классе: class cData // класс дата { int ...

Перегрузка оператора ->
Здравствуйте, мне нужно реализовать перегрузку operator-&gt; .Как реализован оператор -&gt;? Что он...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru