|
|
|
Оператор присваивания (VC)
|
|||
|---|---|---|---|
|
#18+
Встретился с такой вещью. Вопрос чисто по C++: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 11:46:22 |
|
||
|
Оператор присваивания (VC)
|
|||
|---|---|---|---|
|
#18+
Да, еще - на преобразование "return (A&)this" говорит, что справа д.б. l-value. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 11:50:39 |
|
||
|
Оператор присваивания (VC)
|
|||
|---|---|---|---|
|
#18+
Что нельзя возвращать? А так по коду: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 11:51:00 |
|
||
|
Оператор присваивания (VC)
|
|||
|---|---|---|---|
|
#18+
1211212Да, еще - на преобразование "return (A&)this" говорит, что справа д.б. l-value. this - это указатель. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 11:51:33 |
|
||
|
Оператор присваивания (VC)
|
|||
|---|---|---|---|
|
#18+
Извиняюсь, писал прямо здесь... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Код: plaintext Код: plaintext С пустым конструктором вроде все проходит нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 11:57:30 |
|
||
|
Оператор присваивания (VC)
|
|||
|---|---|---|---|
|
#18+
...... Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 11:58:22 |
|
||
|
Оператор присваивания (VC)
|
|||
|---|---|---|---|
|
#18+
1211212 Я не спорю, что this - указатель, но Код: plaintext Код: plaintext С пустым конструктором вроде все проходит нормально. 1) не нормально - должно возврщаться *this. Почему, - написал выше. 2) Ошибка должна быть такой же как в п1. Приведи текст ошибки. А что с конструктором может быть, если у тебя все ошибки от не правельного возвращения результата? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 12:05:45 |
|
||
|
Оператор присваивания (VC)
|
|||
|---|---|---|---|
|
#18+
Ну тебе же сказали this - указатель, поэтому возвращать надо *this ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 12:05:58 |
|
||
|
Оператор присваивания (VC)
|
|||
|---|---|---|---|
|
#18+
blindedНу тебе же сказали this - указатель, поэтому возвращать надо *this Больше всего мне понравилось: Я не спорю, что this - указатель, но Код: plaintext ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 12:09:00 |
|
||
|
Оператор присваивания (VC)
|
|||
|---|---|---|---|
|
#18+
OK, а пустой - ерунда (в смысле ничего страшного)? Я, по правде сказать, ни нашел ничего лучшего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 12:09:37 |
|
||
|
Оператор присваивания (VC)
|
|||
|---|---|---|---|
|
#18+
Akh blindedНу тебе же сказали this - указатель, поэтому возвращать надо *this Больше всего мне понравилось: Я не спорю, что this - указатель, но Код: plaintext ;) и в чем здесь проблема? И также - почему это работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 12:11:27 |
|
||
|
Оператор присваивания (VC)
|
|||
|---|---|---|---|
|
#18+
1211212OK, а пустой - ерунда (в смысле ничего страшного)? Я, по правде сказать, ни нашел ничего лучшего. Пустой - ты не инициализировал свойства объекта. Тебе вообще что надо то? :) Привел какие-то конструкторы и операторы, причем с ошибками, и спрашиваешь - "это ничего страшного?". Ничего страшного - вообще ничего не писать. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 12:12:11 |
|
||
|
Оператор присваивания (VC)
|
|||
|---|---|---|---|
|
#18+
1211212 Akh blindedНу тебе же сказали this - указатель, поэтому возвращать надо *this Больше всего мне понравилось: Я не спорю, что this - указатель, но Код: plaintext ;) и в чем здесь проблема? И также - почему это работает? На каком компиляторе это у тебя работает? Приведи полный код работающий тестовой программы с этим оператором. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 12:13:27 |
|
||
|
Оператор присваивания (VC)
|
|||
|---|---|---|---|
|
#18+
Ошибочка вышла, просто не дотестировал. Там действительно д.б. ошибка. MSDN Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Не делал тестирования присваивания, видимо поэтому компилятор не ругался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 12:18:22 |
|
||
|
Оператор присваивания (VC)
|
|||
|---|---|---|---|
|
#18+
Да, спасибо за отклики. Просто во всех случаях "*this". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 12:21:37 |
|
||
|
Оператор присваивания (VC)
|
|||
|---|---|---|---|
|
#18+
1211212Не делал тестирования присваивания, видимо поэтому компилятор не ругался. Ты лучше в учебник по синатаксису залезь узнать что такое *this и A&. А то таким макаром с msdn-ом у тебя зубреж без знаний получиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 12:23:03 |
|
||
|
Оператор присваивания (VC)
|
|||
|---|---|---|---|
|
#18+
На самом деле, я действительно не понимаю - зачем в данном случае что-нибудь возвращать вообще. Такой вариант, вроде бы, должен быть вполне рабочим: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 12:32:24 |
|
||
|
Оператор присваивания (VC)
|
|||
|---|---|---|---|
|
#18+
1211212На самом деле, я действительно не понимаю - зачем в данном случае что-нибудь возвращать вообще. Такой вариант, вроде бы, должен быть вполне рабочим: Код: plaintext 1. Можно, но ты не сможешь пользовать каскадное присваивание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 12:45:18 |
|
||
|
Оператор присваивания (VC)
|
|||
|---|---|---|---|
|
#18+
ОК, выполнение справа налево, последовательное. Код: plaintext 1. 2. Я не вполне уверен, но я так понял, что статический оператор присваивания запрещен. Не подскажете хорошую ссылку по теме? Просто ничего не нашел в google. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 12:54:27 |
|
||
|
Оператор присваивания (VC)
|
|||
|---|---|---|---|
|
#18+
вредно делать несколько дел сразу: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 12:57:42 |
|
||
|
Оператор присваивания (VC)
|
|||
|---|---|---|---|
|
#18+
Ужули любоытно - Эффективное использование С++. Скотт Мейерс. Там все о операторе присваивания ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 13:16:54 |
|
||
|
Оператор присваивания (VC)
|
|||
|---|---|---|---|
|
#18+
1211212вредно делать несколько дел сразу: Код: plaintext 1. 2. Ничего подобного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 13:34:51 |
|
||
|
Оператор присваивания (VC)
|
|||
|---|---|---|---|
|
#18+
Akh 1211212вредно делать несколько дел сразу: Код: plaintext 1. 2. Ничего подобного. Это на счет нескольких дел или void? blinded[quot 1211212]Ужули любоытно - Эффективное использование С++. Скотт Мейерс. Там все о операторе присваивания[/src] Интересная вещь, спасибо. Все линки в интернете в каком-то кривом формате. Нет ли ссылки на pdf? PS: на строку "Мейерс" google выдает варианты с "Мейерс" и "Майерс" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 13:44:50 |
|
||
|
Оператор присваивания (VC)
|
|||
|---|---|---|---|
|
#18+
1211212 Akh 1211212вредно делать несколько дел сразу: Код: plaintext 1. 2. Ничего подобного. Это на счет нескольких дел или void? нескольких дел. Компактный (необфусцированный) код еще никому не мешал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 13:50:39 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=280&tid=2028289]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
33ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
91ms |
get tp. blocked users: |
2ms |
| others: | 245ms |
| total: | 411ms |

| 0 / 0 |
