Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите разобраться с приведением типов
|
|||
|---|---|---|---|
|
#18+
Привет! Прошу не пинать ногами - только начал изучать есть два класса базовый и наследник Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. вопрос почему это работает Код: plaintext 1. 2. , а это выдает ошибку Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2014, 15:37 |
|
||
|
Помогите разобраться с приведением типов
|
|||
|---|---|---|---|
|
#18+
dghsf, а это выдает ошибку Код: plaintext 1. 2. При инициализации ClB c происходит срезка. Тип переменной с у тебя ClB. Перепишы класс так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Узнаешь много нового... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2014, 16:01 |
|
||
|
Помогите разобраться с приведением типов
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2014, 16:01 |
|
||
|
Помогите разобраться с приведением типов
|
|||
|---|---|---|---|
|
#18+
честно говоря не понял, для чего нужно было переписывать класс - это проблему не решило Я так полагаю что ответ на мой вопос в статье по ссылке http://en.wikipedia.org/wiki/Object_slicing , а именно авторUnexpected object slicing can happen in languages such as C++ in which assignment by value is not polymorphic или я чтото не совсем понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2014, 16:34 |
|
||
|
Помогите разобраться с приведением типов
|
|||
|---|---|---|---|
|
#18+
dghsf, dghsf, Суть в том, что при создании ClB c = ClB1() срабатывает копирующий конструктор по умолчанию, который копирует из временного объекта типа ClB1 только поле str1. Вызов ((ClB1)c).setClb1Str1() пытается обратиться к участку памяти, занятому объектом c, как к объекту ClB1, которого там нет. В случае ClB* c = new ClB1() создаётся именно объект типа ClB1, и с ним вызов метода срабатывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2014, 16:47 |
|
||
|
Помогите разобраться с приведением типов
|
|||
|---|---|---|---|
|
#18+
dghsfчестно говоря не понял, для чего нужно было переписывать класс - это проблему не решило Это не должно было решить проблему . Это должно было показать тебе её причину. dghsfЯ так полагаю что ответ на мой вопос в статье по ссылке http://en.wikipedia.org/wiki/Object_slicing , а именно авторUnexpected object slicing can happen in languages such as C++ in which assignment by value is not polymorphic или я чтото не совсем понял? Да, да, всё так. Правда, они там херню написали в этой википедии (как и часто бывает). assignment by value -- операция полиморфная. Только переменная целевая неполиморфная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2014, 17:00 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=53&tid=2019203]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 287ms |
| total: | 410ms |

| 0 / 0 |
