Как уже говорили другие, желательно избегать этой ситуации, используя умные указатели или удаляя объект на том же уровне, на котором он был создан ... или вообще не используя указатели.
В то же время, я бы не сказал, что передача владения объектами - это, безусловно, плохой дизайн, если это очевидно для пользователей ClassA в документации. Я сталкивался с подобной ситуацией, когда писал функции, которые берут указатель на объект и копируют его для собственного использования. Там, где это необходимо, я стараюсь комментировать эти функции с помощью «семантики копирования параметров» или чего-то такого, что говорит вызывающей стороне: «Вы можете делать с этим объектом то, что хотите, после того как я вернусь ... У меня есть собственная копия».
Если вы используете необработанные указатели, я считаю важным заключить такие контракты для вызывающих абонентов.