0 / 0 / 0
Регистрация: 05.08.2011
Сообщений: 30
|
||||||
1 | ||||||
Переопределение оператора в классе11.08.2011, 19:11. Показов 3095. Ответов 33
Метки нет (Все метки)
String s2 += '?';
0
|
11.08.2011, 19:11 | |
Ответы с готовыми решениями:
33
Переопределение оператора == Переопределение оператора Переопределение оператора [][] Переопределение оператора ++ |
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
11.08.2011, 19:43 | 3 |
Можно в классе написать конструктор, принимающий char, и тогда вообще ничего дописывать не надо - будет произведено автоматическое преобразование типа и подойдёт уже написанный оператор для двух String'ов.
Добавлено через 50 секунд lazybiz, а выход за массив не рассматриваем?))
1
|
11.08.2011, 19:46 | 4 |
Нет. Исходя из того что автор поста в описании первого оператора его не рассматривает я написал по-аналогии
Я лишь ответил на его вопрос, а нужна ли ему проверка или нет меня меньше всего волнует) Если хочешь то можешь у него об этом спросить) Таково мое мнение
1
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
11.08.2011, 20:00 | 5 |
lazybiz, да мне тоже не особо интересно, но если уж взялся помогать, то хотя бы на словах поясню, какие могут быть проблемы и как примерно их решать. Таково моё мнение.
1
|
0 / 0 / 0
Регистрация: 05.08.2011
Сообщений: 30
|
|
11.08.2011, 20:05 [ТС] | 6 |
0
|
Заблокирован
|
||||||
11.08.2011, 20:06 | 7 | |||||
Я думаю, что вы хотели перегрузить оператор не для константной ссылки на символ, а для символьного массива. Тогда правльное объявление этого оператора будет выглядеть так
0
|
11.08.2011, 20:18 | 8 |
silent_1991, Давай мы не будем вступать в глубоко-интеллектуальные дискуссии. Какой был вопрос - такой и ответ. (точка большая и жирная)
Добавлено через 8 минут Кстати поподробней. Не совсем понял что ты имеешь в виду.
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
||||||
11.08.2011, 21:04 | 9 | |||||
lazybiz,
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
||||||
11.08.2011, 21:30 | 11 | |||||
lazybiz, а чем строки принципиально в этом плане отличаться будут? Тут мы вместо Foo подсовываем int, который принимает конструктор, там вместо String подсунем char, который тоже будет принимать конструктор.
Добавлено через 20 минут lazybiz, SatOleg, вот приблизительный пример со строками:
2
|
11.08.2011, 21:38 | 12 |
Хотя бы тем что в С/С++ с переменной типа int можно сделать так: a += b, а с переменной типа char, и уж тем более со строкой ты такого не сделаешь не применяя посторонних классов. Я думаю строки принципиально в этом плане отличаться от не сток.
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
11.08.2011, 21:41 | 13 |
lazybiz, когда речь заходит о классах, все это отходит на второй план. Если вы в классе перегрузили оператор +, но не перегрузили +=, то вы сможете применять + к объектам класса, но на первый же += компилятор выдаст ошибку. Так что в данном случае разницы никакой, и вы можете убедиться в этом, посмотрев последний листинг в этой теме.
0
|
11.08.2011, 21:57 | 14 |
silent_1991, я смотрю последний листинг и вот что я не вижу!, а я ничего не вижу... особенно перегрузку оператора += что собственно и должно являться корнем данной темы. Вы просто перенесли тему из одного контекста обсуждения в другой.
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
||||||
11.08.2011, 22:05 | 15 | |||||
lazybiz, прошу прощения, как в первый раз ошибочно прочитал в первом сообщении operator+, а не operator+=, так больше в него не заглядывал. Однако даже если это учесть, то каково будет отличие? Вот исправленный листинг, добавлен оператор +=. Что-то изменилось?
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
11.08.2011, 22:35 | 17 |
lazybiz, ага, а выше как-бы мой код, в котором как-бы есть конструктор, принимающий как-бы char.
0
|
11.08.2011, 23:30 | 18 | |||||
Что самое удивительное, этого конструктора там нет. И давай ты больше меня не будешь убеждать в нереальности своих фактов! Это не серьезно!
Вот твой последний код:
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
11.08.2011, 23:36 | 19 |
Плохо смотрите. Я бы мог сразу назвать строчку, но давайте вы ещё разок повнимательнее присмотритесь. Можете даже создать в main'е объект класса String, передав ему в качестве параметра символ, пробежаться по коду дебаггером и посмотреть, на какую строку перескочит курсор при создании этого объекта. А можете просто открыть хоть один глаз (потому что, судя по всему, они оба у вас сейчас закрыты) и просмотреть каждый конструктор в классе (их там, конечно, до фига, целых два, и они дико разбросаны по коду, но вы уж постарайтесь).
0
|
11.08.2011, 23:57 | 20 |
Ты подразумеваешь под символом свой класс, автор темы хотел перегрузку оператора с char, если его устроит твой вариант то я за тебя рад..
Добавлено через 1 минуту ..хотя нет. не рад. Дорога к обеду ложка! и именно ложка! а не половник!!
0
|
11.08.2011, 23:57 | |
11.08.2011, 23:57 | |
Помогаю со студенческими работами здесь
20
Переопределение оператора Переопределение оператора== Переопределение оператора больше Переопределение оператора присваивания Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |