![]() |
|
Модераторы: bsa |
![]()
|
|
| Lotles |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 6.4.2010 Репутация: нет Всего: нет |
Привет всем !
Каким образом вызывается оператор присваивания, например, здесь:
если в аргументе const char*, а в операторе присваивания const String&. Может быть дело в operator char*(), но в ответе operator char*() вызывается после присваивания: Компилятор выводит : Vizivaetsja operator prisvaivanija Vizivaetsja operator prisvaivanija Vizivaetsja operator prisvaivanija Vizvalsja operator char* ...
Это сообщение отредактировал(а) Lotles - 11.10.2010, 21:56 |
||||
|
|||||
| Crafty |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 319 Регистрация: 3.11.2008 Репутация: 12 Всего: 14 |
Сначала неявно создаётся временный объект при помощи конструктора String(const char* s), и потом уже идет присвоение. Добавлено @ 22:25 это уже относиться к
Это сообщение отредактировал(а) Crafty - 11.10.2010, 22:26 |
||||
|
|||||
| Lotles |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 6.4.2010 Репутация: нет Всего: нет |
Сюда, в src передается временный объект Так ? |
||||||||
|
|||||||||
| Crafty |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 319 Регистрация: 3.11.2008 Репутация: 12 Всего: 14 |
Lotles, да так.
Добавлено через 1 минуту и 27 секунд Получается что-то наподобие
|
|||
|
||||
| Lotles |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 6.4.2010 Репутация: нет Всего: нет |
Спс !
Это сообщение отредактировал(а) Lotles - 12.10.2010, 01:52 |
|||
|
||||
| Crafty |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 319 Регистрация: 3.11.2008 Репутация: 12 Всего: 14 |
Lotles, я вот эту щас дочитываю Язык программирования C++ (Липпман). Там эти вопросы не плохо объясняются.
Еще тут можете посмотреть про книги. Это сообщение отредактировал(а) Crafty - 12.10.2010, 01:52 |
|||
|
||||
| Lotles |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 6.4.2010 Репутация: нет Всего: нет |
Я читаю C++ без страха, вообще слов нету такое ### каторого свет не видывал
Добавлено @ 01:59 Кстате, поставьте + Crafty, кто -нибудь, а то я не могу Это сообщение отредактировал(а) Lotles - 12.10.2010, 15:16 |
|||
|
||||
| Lotles |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 6.4.2010 Репутация: нет Всего: нет |
Я пытаюсь понять что внутри неявно вызываемого конструктора
String (const char*){ String new_pt ... ... } Когда обрабат-ся код a= "I" в конструкторе что то наподобе new_pt.ptr=I, потому что здесь
а точнее
находится I, потом am, потом so И главный вопрос: Откуда компиляьор знает, что именно в new_pt.ptr нужно записать "I" Это сообщение отредактировал(а) Lotles - 13.10.2010, 17:24 |
||||
|
|||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
А чего понимать? Посмотри строки 14-18 своего кода, там все написано. Просто ты в качестве параметра указал char*, а стоило бы const char*. Но все равно будет работать, так как оставлена совместимость со старым кодом, в котором const не было. |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |