| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > boost::shared_ptr и Инициализация |
| Автор: dix75 26.4.2009, 20:24 | ||||||||
| Здраствуйте. Имеется иерархия классов
Дальше создаю в класс в котором имеется ссылка на преведенную выше иерархию т.е.
В зависимости от передаваемого значения в конструктор необхомимо чтобы указатель указывал на один или другой класс. т.е. хотел написать так
Остановился на таком варианте
Так зараза оже неправильно работает. Как быть? |
| Автор: J0ker 26.4.2009, 21:00 | ||
| тернарный оператор должен возвращать один и тот-же тип из обоих кейсов (или преобразуемые друг в друга) попробуй так:
и обязательно добавь в TBase виртуальный дестрактор - во избежание так сказать |
| Автор: Любитель 26.4.2009, 21:17 | ||
J0ker, а зачем ещё реинтерпрет?!
Я б удивился, если б это работало правильно - вы объявляете две локальных переменных, а не присваиваете значения полю класса. И ещё - зачем в С++ использовать int, где (по контексту) bool? |
| Автор: J0ker 26.4.2009, 21:37 |
т.к. не существует преобразования из TNULL* в TFirst* или наоборот - этого требует оператор ?: |
| Автор: dix75 26.4.2009, 23:17 |
| J0ker, а зачем интерпрет ? ведь у них есть общий предок |
| Автор: dix75 27.4.2009, 20:55 |
| Любитель, Вот и так думаю Реинтерпрет вообще не переносим |