63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
1 | |
Перегрузка оператора +02.08.2014, 17:56. Показов 5708. Ответов 83
Метки нет (Все метки)
не получается в своем классе перегрузить оператор + пишет "error C2804: бинарный "operator +" имеет слишком много параметров", действительно задал 2 параметра, но как еще то? ведь + и подразумевает собой сложение 2х значений...
0
|
02.08.2014, 17:56 | |
Ответы с готовыми решениями:
83
Перегрузка оператора ^ Перегрузка оператора + перегрузка оператора! Перегрузка оператора + |
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
||||||
02.08.2014, 18:09 [ТС] | 3 | |||||
а как же тогда перегрузить чтобы было сложение именно 2х различных значений?
т.е.
0
|
57 / 51 / 42
Регистрация: 18.07.2014
Сообщений: 194
|
||||||
02.08.2014, 18:17 | 5 | |||||
Сделать дружественный оператор. Как то так:
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
||||||
02.08.2014, 18:22 [ТС] | 6 | |||||
пытался в свой код добавить, пишет "error C2803: "operator +" должен иметь по крайней мере один формальный параметр типа класс"
0
|
Заблокирован
|
||||||
02.08.2014, 18:23 | 7 | |||||
- написать перегруженный оператор для всех типов с которыми возможно взаимодействие. На практике это оч геморное занятие, потому стараются перевести результат сложения в какой нибудь из стандратных типов(конечно если это вообще возможно)
0
|
57 / 51 / 42
Регистрация: 18.07.2014
Сообщений: 194
|
|
02.08.2014, 18:25 | 8 |
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
02.08.2014, 18:26 [ТС] | 9 |
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
|
|
02.08.2014, 18:31 | 10 |
а теперь посмотри как определе этот оператор в "классическом" string
http://www.cplusplus.com/refer... operator+/ вернуть ты должен объект класса и хоть один из аргументов должен быть классом
0
|
Заблокирован
|
|
02.08.2014, 18:36 | 11 |
GetHelp, нельзя в оператор + впихнуть больше 1-го аргумента и объявить свой оператор на большее число аргументов тоже нельзя, этого сделать язык не позволяет
http://codepad.org/WbXX07Nw http://ideone.com/lm1na4
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
02.08.2014, 18:40 [ТС] | 12 |
если бы я хотел сделать копию классического стринга я бы... нет я бы просто не стал страдать фигней... я пытаюсь сделать более простой вариант строки, основной смысл - максимально добиться функциональности паскалевых строк, т.е. никакой мороки с аллокацией памяти и т.д.
это верно, че то протупил, но ошибка все равно такая же висит... а можно хоть как то сделать чтобы складывались именно 2 char*? Добавлено через 36 секунд -=ЮрА=-, печаль беда паника
0
|
57 / 51 / 42
Регистрация: 18.07.2014
Сообщений: 194
|
|
02.08.2014, 18:42 | 13 |
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
||||||
02.08.2014, 18:48 [ТС] | 15 | |||||
в паскале/делфи просто прокатывает такая конструкция:
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
|
||||||
02.08.2014, 18:56 | 17 | |||||
в паскале в начале строки стоит размер а потом массив символов
а в Си массив символов а потом завершающий 0 а у тебя указатель а потом размер нужно что то типа
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
02.08.2014, 19:02 [ТС] | 18 |
-=ЮрА=-, ну похоже так и придется делать...
Добавлено через 2 минуты ValeryS, я знаю про это, но в том и плюс строк что у них есть завершающий нуль, что дает возможность узнать их размер... нет, я не хочу в этом плане копировать паскалевскую организацию массивов... размер у меня определен внутри класса и по требованию можно его узнать или даже сделать strlen от элемента класса... Добавлено через 4 минуты да все решено, это самый подходящий вариант спс
0
|
|
02.08.2014, 19:06
#19
|
Не по теме: GetHelp, это тебя успокоить в правильности твоего решения
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
||||||
02.08.2014, 19:27 [ТС] | 20 | |||||
-=ЮрА=-, а все таки я опять не понимаю как это должно работать? ведь конструктор не возвращает значения...
0
|
02.08.2014, 19:27 | |
02.08.2014, 19:27 | |
Помогаю со студенческими работами здесь
20
Перегрузка оператора Перегрузка оператора new[] Перегрузка оператора > Перегрузка оператора Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |