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

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

Восстановить пароль Регистрация
 
fen1ksss
2 / 2 / 0
Регистрация: 16.09.2010
Сообщений: 71
16.05.2011, 23:26     Перегрузка оператора + #1
Написал для перегрузки оператора +
Код
class BoolMatrix
{
private:
	int feet;	
public:
	BoolMatrix(int f): feet(f)
	{}	
	BoolMatrix operator+ (BoolMatrix obj2)
	{
		feet=feet+obj2.feet;
		return BoolMatrix (feet);
	}
};

int main()
{
	BoolMatrix lens1(f.get_mas1()[i][j]);
	BoolMatrix lens2(f.get_mas2()[i][j]);
	BoolMatrix lens3;
	lens3=lens1+lens2;
}
подскажите, как перегрузить + чтобы к классу можно было прибавлять переменную?

например вот так
Код
int main()
{
	BoolMatrix lens1(f.get_mas1()[i][j]);
	BoolMatrix lens2(f.get_mas2()[i][j]);
	int a;
	lens3=lens1+lens2+a;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2011, 23:26     Перегрузка оператора +
Посмотрите здесь:

C++ Перегрузка оператора %
Перегрузка оператора = C++
Перегрузка оператора C++
C++ перегрузка оператора
C++ Перегрузка оператора
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
16.05.2011, 23:29     Перегрузка оператора + #2
А где у вас поля в классе?
К чему вы все это прибавляете?
fen1ksss
2 / 2 / 0
Регистрация: 16.09.2010
Сообщений: 71
16.05.2011, 23:31  [ТС]     Перегрузка оператора + #3
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
А где у вас поля в классе?
К чему вы все это прибавляете?
исправил
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
16.05.2011, 23:43     Перегрузка оператора + #4
Тогда все просто:
C++
1
2
3
4
5
BoolMatrix operator+ (int R)
        {
                feet=feet+R;
                return *this;
        }
И в своем коде исправьте на return *this;
Нюансец забыл указать. Исправить надо:
C++
1
2
3
4
5
BoolMatrix operator+ (int R)
        {  BoolMatrix tmp;
                tmp.feet=feet+R;
                return tmp;
        }
Операция сложения - не изменяет текущий объект. Первый вариант - это operator+=
Onishare
30 / 30 / 5
Регистрация: 07.05.2011
Сообщений: 50
16.05.2011, 23:46     Перегрузка оператора + #5
C++
1
2
3
4
5
6
7
8
9
10
11
BoolMatrix& operator+(const BoolMatrix& obj2)
{
  feet+=obj2.feet;
  return *this;
}
 
BoolMatrix& operator+(const int feet)
{
  this->feet+=feet;
  return *this;
}
fen1ksss
2 / 2 / 0
Регистрация: 16.09.2010
Сообщений: 71
16.05.2011, 23:54  [ТС]     Перегрузка оператора + #6
спасибо
Yandex
Объявления
16.05.2011, 23:54     Перегрузка оператора +
Ответ Создать тему
Опции темы

Текущее время: 14:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru