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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
broDiaga_cpp
22 / 12 / 1
Регистрация: 20.02.2010
Сообщений: 180
#1

operator+ как член класса - C++

14.08.2013, 20:15. Просмотров 1404. Ответов 42
Метки нет (Все метки)

Могу ли я сделать operator+ как член класса таким образом?
C++
1
2
3
4
5
myClass& myClass::operator+(const myClass& other1, const myClass& other2)
{
    data += other.data;
    return *this;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.08.2013, 20:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос operator+ как член класса (C++):

Массив объектов класса как член другого класса - C++
Здравствуйте. У меня тут возникла проблемка #include "main.h" class player { public: player(); player(char*); ...

Как перенести operator из базового класса в производный? - C++
Добрый день! Подскажите, пожалуйста, на простых примерах, как нужно работать с оператором перегрузки операций, если он находится в...

Член-ссылка на другой член класса - C++
Есть класс Dot с двумя членами - x и y. Требуется еще один класс, который хранит width i height, но реализация этого класса ничем не...

Vector как член класса - C++
собственно заголовок моего класса: #pragma once #include <Vector> #include "StdAfx.h" #include "PObject.h" #include...

Массив как член класса - C++
Почему мне GCC выдаёт ошибку компиляции, что это zero-sized array ? struct Base { const char* d{"f", "f"}; }; ISO C++...

Как вызвать член класса по адресу? - C++
В общем вопрос такой: допустим есть адрес класса, то получается по определенному смещению вызвать его член? (кстати, как можно найти...

42
Jupiter
Каратель
Эксперт С++
6556 / 3977 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
15.08.2013, 00:20 #16
Цитата Сообщение от icpu Посмотреть сообщение
Важно, как..
что как?
0
icpu
335 / 249 / 47
Регистрация: 10.03.2011
Сообщений: 1,176
Записей в блоге: 2
15.08.2013, 00:21 #17
Цитата Сообщение от Jupiter Посмотреть сообщение
что как?
Ладно, я затупил. И так, и сяк создаётся экземпляр класса, разницы нет. Ну, разыгрался у меня сегодня синдром паладина, что поделать?
0
Tulosba
15.08.2013, 12:32
  #18

Не по теме:

кстати, operator+ может быть еще и унарным. А чтобы не гореть в адах, надо функции-члены, которые не должны менять this, делать константными.

0
IGPIGP
15.08.2013, 14:54
  #19

Не по теме:

Tulosba, вопрос в постановке нерешаем даже за пределами класса. Все же ссылки и две const))
Как говорил кот Матроскин: - "Чтобы вернуть что нибудь ненужное нужно сначала получить что нибудь ненужное."
Можно опрератор сравнения перегрузить. Чтобы наконец можно таки было написать что то вроде:

C++
1
A=B>C>D>E;

0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
15.08.2013, 15:00 #20
Цитата Сообщение от IGPIGP Посмотреть сообщение
вопрос в постановке нерешаем даже за пределами класса
Вопрос решаем. Ответ: "нет"
Цитата Сообщение от IGPIGP Посмотреть сообщение
Всё же ссылки и две const))
Речь о модификации this функцией, которая модифицировать не должна. Не о явных аргументах речь, а о неявном.
Цитата Сообщение от IGPIGP Посмотреть сообщение
C++
1
A=B>C>D>E;
И что в этом случае хотелось бы получить?
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6486 / 3130 / 307
Регистрация: 04.12.2011
Сообщений: 8,644
Записей в блоге: 5
15.08.2013, 15:21 #21
Цитата Сообщение от Tulosba Посмотреть сообщение
И что в этом случае хотелось бы получить?
Хотелось бы, - громко сказано. Максимум удовольствия, наверное.

Добавлено через 3 минуты
Цитата Сообщение от Tulosba Посмотреть сообщение
Всё же ссылки и две const))
Речь о модификации this функцией, которая модифицировать не должна.
Я не так понял. В классе + с двумя аргументами не получится. А вне класса придётся модифицировать одно из слагаемых. А за это гореть в аду...
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
15.08.2013, 15:47 #22
Цитата Сообщение от IGPIGP Посмотреть сообщение
А вне класса придётся модифицировать одно из слагаемых.
Для обычного сложения-то? C = A + B. Не требует модификации ни A, ни B.
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6486 / 3130 / 307
Регистрация: 04.12.2011
Сообщений: 8,644
Записей в блоге: 5
15.08.2013, 16:10 #23
Цитата Сообщение от Tulosba Посмотреть сообщение
Для обычного сложения-то? C = A + B. Не требует модификации ни A, ни B.
В вопросе требуется вернуть не объект, а именно ссылку. Что будем возвращать?
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
15.08.2013, 16:21 #24
Цитата Сообщение от IGPIGP Посмотреть сообщение
В вопросе требуется вернуть не объект, а именно ссылку.
Бредовое желание для операции сложения.
0
Jupiter
15.08.2013, 16:43
  #25

Не по теме:

Цитата Сообщение от IGPIGP Посмотреть сообщение
В вопросе требуется вернуть не объект, а именно ссылку
будем гореть в аду
Цитата Сообщение от Tulosba Посмотреть сообщение
А чтобы не гореть в адах, надо функции-члены, которые не должны менять this, делать константными.
надо просто форкнуть цпп и запилить перегрузку операторов в виде статических методов, как в решотке

0
IGPIGP
15.08.2013, 16:44
  #26

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
Бредовое желание для операции сложения.
Консенсус.
Цитата Сообщение от Jupiter Посмотреть сообщение
будем гореть в аду
ещё поупираемся.

0
Tulosba
15.08.2013, 17:11
  #27

Не по теме:

Цитата Сообщение от Jupiter Посмотреть сообщение
надо просто форкнуть цпп и запилить перегрузку операторов в виде статических методов, как в решотке
Это, кстати, можно было бы внести в очередной стандарт просто. А в шарпы из плюсов добавить константные функции и возможность readonly объекты создавать внутри функций.

1
Jupiter
15.08.2013, 17:16
  #28

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
А в шарпы из плюсов добавить константные функции и возможность readonly объекты создавать внутри функций.
и static

0
Tulosba
15.08.2013, 17:24
  #29

Не по теме:

Цитата Сообщение от Jupiter Посмотреть сообщение
и static
Статик внутри функций не нужен. С учетом обязательной принадлежности функции к классу, логичнее перенести ее в класс.

0
Jupiter
15.08.2013, 18:32     operator+ как член класса
  #30

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
Статик внутри функций не нужен. С учетом обязательной принадлежности функции к классу, логичнее перенести ее в класс.
нечего засорять область видимости

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.08.2013, 18:32
Привет! Вот еще темы с ответами:

Статический массив как член класса - C++
Я туплю, что ли, почему это компилируется? о_О struct V { int v; }; V v1; V v2(v1); // копирование v2 = v1; //...

Как инициализировать строковой член класса? - C++
Доброго времени. Подскажите, пожалуйста, как инициализировать строковую переменную класса, используя конструктор? #include <iostream> ...

Ifstream& как член класса - C++
Здравствуйте. Решаю задачу: Напишите функцию, получающую и качестве аргументов istream и vector<string> и возвращающую map<string,...

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.08.2013, 18:32
Ответ Создать тему
Опции темы

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