Если то, что вы return
называете new
объектом, то нет никаких причин, по которым вам нужно запретить пользователю delete
его использовать.
Однако вы не должныНе оставляйте вопросов об ответственности за удаление.Вместо этого либо используйте интеллектуальный указатель для возврата значения, либо используйте полиморфный шаблон pImpl (в котором неполиморфная оболочка содержит интеллектуальный указатель на полиморфную реализацию - обычно это интеллектуальный указатель, который обеспечивает семантику значения, например this ) вместо того, чтобы просто возвращать производный экземпляр.