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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
_lacrimosa_
1 / 1 / 0
Регистрация: 10.06.2010
Сообщений: 26
#1

Переопределение операций - C++

31.08.2010, 16:13. Просмотров 1491. Ответов 4
Метки нет (Все метки)

Ситуация такая. В классе матриц переопределён оператор взятия индекса:

C++
1
float operator() (int row, int column) const;
Сами данные (элементы матрицы) хранятся в виде одномерного массива, поэтому для простоты нужен этот оператор.

В переопределении операции сложения хочу сделать так:
C++
1
result(i,j) = A(i,j)+B(i,j);
Значит необходим оператор, который записывает некоторое число в элемент (i,j) матрицы, условно говоря такой: (int i, int j)=

Реально ли такое сделать? - чтобы избежать такого нечитаемого куска кода:
C++
1
2
float p = A(i,j)+B(i,j);
result.PutElem(i,j,p);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.08.2010, 16:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переопределение операций (C++):

Переопределение операций - C++
Арифметику класса реализовать в виде стандартного набора переопределенных операций с "арифметической" интерпретацией-результ операции-новый...

Переопределение операций - C++
У меня есть класс, который хранит коэффициенты полинома, вычисляет его. Я попытался добавить оператор суммы (который по моей версии должен...

Переопределение операций - C++
Здравствуйте, необходимо осуществить переопределение операции сложения, не понимаю как применять на практике переопределение, заранее...

Переопределение операций - C++
Люди, помогите разобраться, не совсем все понимаю. Эта программа представляет класс комплексных чисел с переопределенными функциями...

Переопределение операций со строками - C++
Операция переопределения Замена в строке первых n символов на символ с наименьшим кодом из входящих в строку почему-то работает...

Переопределение операций - значки - C++
Мне вот преподаватель сказал, что можно переопределить любую операцию, знак которой определяется не через дополнительный, а через прямой...

4
fasked
Эксперт С++
4945 / 2525 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
31.08.2010, 16:21 #2
C++
1
2
3
float& operator() (int row, int column);
// ...
A(i,j) = B(i,j);
Но вообще более принято перегружать operator[] или использовать метод под именем at().
1
alex_x_x
бжни
2449 / 1654 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
31.08.2010, 17:46 #3
fasked, [] не перегрузить для двух параметров, не используя дополнительного класса =)
0
fasked
Эксперт С++
4945 / 2525 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
31.08.2010, 17:47 #4
Цитата Сообщение от alex_x_x Посмотреть сообщение
[] не перегрузить для двух параметров, не используя дополнительного класса
забыл добавить перегружать operator[] два раза
0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
01.09.2010, 12:06 #5
_lacrimosa_, надо добавить один класс, который будет представлять строку или столбец, и перегрузить для него оператор взятия индекса, а потом уже на его основе строить класс матрицы. А в классе матрицы сделай так, чтобы оператор взятия индекса возвращал ссылку на строку (или на столбец).
Вот здесь можешь посмотреть пример, если надо.
0
01.09.2010, 12:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.09.2010, 12:06
Привет! Вот еще темы с ответами:

Переопределение стандартных операций - C++
Рациональная (несократимая) дробь представляется парой целых чисел (а, b), где а — числитель, b — знаменатель. Создать класс Rational для...

Переопределение операций в одномерном массиве - C++
Помогите, пожалуйста, написать программу! А) Создать класс одномерный массив целых чисел. ( класс содержит: - свойства: 1)...

Переопределение операций сложения, инкремента - C++
Лабораторная работа 2 Тема: Переопределение операций. Дружественные функции. Задания на лабораторную работу Для класса из лаб....

Создать класс строка и производный класс битовая строка, не работает переопределение операций - C++
Здравствуйте уважаемые форумчане.Мне очень нужна помощь в разработке класса.Сам класс вроде работает но вот 1 задание к нему неработает...


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

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

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