Бросок объекта производного класса, хранящегося в указателе базового класса - PullRequest
0 голосов
/ 27 апреля 2020

Я хотел бы выбросить производный объект как тип исключения. Память для этого производного объекта была выделена динамически, и объект управляется указателем базового класса. Этот базовый класс является абстрактным. Когда я пытаюсь выбросить указатель без ссылки, он выдает ошибку object of abstract class type is not allowed. Я понимаю, что эта ошибка необходима, так что вам запрещено бросать объект абстрактного базового класса. Тем не менее, мне интересно, если есть какой-либо способ иметь возможность выбросить производный объект, хранящийся в указателе базового класса. Производный объект, конечно, не является абстрактным. Учитывая, что для полиморфизма принято использовать указатели базового класса, я чувствую, что должен быть способ обойти это. Есть ли? Я бы предпочел не бросать указатель сам. Специально учитывая, что это уникальный указатель, и я предполагаю, что он выдаст мне ошибку, если я поймаю умный указатель и, следовательно, получу две копии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...