0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 9
|
||||||
1 | ||||||
Передача умного указателя на базовый тип по ссылке18.05.2021, 13:15. Показов 1380. Ответов 1
Метки нет (Все метки)
Условно имеются два класса А и В. Класс В наследуется от класса А и в нём есть функция, принимающая в качестве аргумента ссылку на умный указатель класса А. При передаче в эту функции умного указателя на класс B, выскакивает ошибка о том, что не может преобразовать значение. Я понимаю почему это происходит, но я не понимаю каким способом обойти данную проблему.
Например, есть такой код:
Все варианты решения, которые приходили в голову, слишком корявые. Какие варианты есть для решения данной проблемы?
0
|
18.05.2021, 13:15 | |
Ответы с готовыми решениями:
1
typeid определяет тип указателя на базовый класс, как тип "базовый класс". Вне зависимости от присвоенного ему значения Как привести тип умного указателя к указателю на void? Передача указателя по ссылке Передача указателя в функцию по ссылке |
18826 / 9829 / 2403
Регистрация: 30.01.2014
Сообщений: 17,264
|
|||||||||||
18.05.2021, 13:29 | 2 | ||||||||||
Сообщение было отмечено nikhrom23 как решение
Решение
nikhrom23, в таком коде нет никакого практического смысла передавать константную ссылку на умный указатель. Передевайте константную ссылку на
А и все починится.
Какой-то практический смысл появляется, если вам нужно передавать владение. Но в этом случае все прекрасно работает.
2
|
18.05.2021, 13:29 | |
18.05.2021, 13:29 | |
Помогаю со студенческими работами здесь
2
Передача указателя по ссылке в чистом С Передача указателя в функцию по ссылке Передача умного указателя в функцию принимающую указатель на указатель Передача указателя на массив тип complex в функцию Реализация умного указателя Доступ к полю умного указателя Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |