У меня есть объект базового класса, который на самом деле, указывая на производный класс, как этотC++ передавая объект по ссылке и литье
Base *b = new Derived()
То, что я хочу знать, можно ли передать указатель на базовый класс ссылаясь на некоторую функцию, которая может вернуть объект обратно в класс Derived. Что-то вроде этого
Dummy_cast_fn(&b) // casts b to derived class
После вызова Dummy_cast_fn
, b
должны иметь полную копию производного класса (без нарезки).
Редактировать Я не понимаю, какая часть не существует, поскольку указатели используются. Моя проблема: класс Derived возвращается из вызова функции в общую библиотеку, и у меня нет доступа к файлу .h для Derived. Только у меня есть информация о том, что Derived основан на базовом классе. У меня есть доступ к Base.h, поэтому я могу создать экземпляр объекта Base, но проблема возникает, когда я пытаюсь получить доступ к функциям, которые определены в Derived, но не в Base. Поэтому мне было интересно, могу ли я приводить тип Base в Derived, тогда я смогу получить доступ к функции, определенной в Derived, а не в Base.
Вы хотите полную копию или ссылку на оригинал? – justin
Если вы где-нибудь не храните указатель, то почему вы проходите по указателю? Передайте по ссылке ... –
Я хочу полную копию Derived. –