![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
пробуй. И пользуйся тегом с подстветкой С++, пожалуйста. |
|||
|
||||
| sol78 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 7.7.2007 Репутация: 1 Всего: 0 |
Неа, не зацепило(((
|
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
ага, понял. потому как первый аргумент не объект класса String. Для того, чтобы это заработало, вынеси operator+ во внешнюю функцию с двумя аргументами String. |
|||
|
||||
| sol78 |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 7.7.2007 Репутация: 1 Всего: 0 |
JackYF, Только не знаю что предпочтительней....интерфейс менять что то не хочется....? Вот следующая проблема: Для работы с константными обьектами.. я делаю так: class String:
т.е. по паре операторов 1 для const другой обычный... class SubString
Должно работать так:
Но не работает...ругается на приведении типов (const - ne const) Как быть? |
||||||||
|
|||||||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
фанатизм? вынесение оператора+ в функции вне класса - распространённая практика, и для строк, в частности, тоже абсолютно верно. Это дикий кусок кода, зачем он может быть нужен? |
|||
|
||||
| sol78 |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 7.7.2007 Репутация: 1 Всего: 0 |
Согласна, но это каснется не только одного оператора +, но ище штук 7-8 таких же....
Ничего дикого тут нет....s1("-")="mu" - эта комбинация напоминает некий аналог copy-paste , когда работаем в Worde
это вы о чем? |
||||||
|
|||||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
||||
|
||||
| sol78 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 7.7.2007 Репутация: 1 Всего: 0 |
да правильно все, так и должно быть, для этого и весь сыр-бор....
Проблема не там....
|
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
|
|||
|
||||
| sol78 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 7.7.2007 Репутация: 1 Всего: 0 |
JackYF, неаб не помогло...
|
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
|
|||
|
||||
| sol78 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 7.7.2007 Репутация: 1 Всего: 0 |
JackYF, не работает...
Что делает оператор const_cast<const String&>? |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
вообще - изменение константности. а если так: "const_cast<String&>"? и ошибку, ошибку в студию... |
|||
|
||||
| sol78 |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 7.7.2007 Репутация: 1 Всего: 0 |
Вот так заработало
Обьясните, плз ,какова тут функция оператора const_cast<String&>(*this)...Я этот оператор никогда не использавала? Если интерфейс констуктора для субстринга:
|
||||
|
|||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
в данной функции *this имеет тип const String&, так это константная функция класса. Конструктор же вышеуказанный принимает String&, а не const String&, следовательно мы используем const_cast - отмену константности. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |