Почти.
Что за класс? Это какой-то интерфейс большой, ну, скажем, интерфейс приложения, или это какой-то объект?
Сколько экземпляров этого класса может быть в наличии?
Просто надо как-то решить вопросы владения.
Во-первых, нехорошо, что с вызывающей стороны могут удалить этот твой экземпляр. Сервер может быть не готов, кроме того, клиент это может сделать как-то не так.
Намного надёжнее деструктор сделать protected, а в интерфейс добавить метод virtual void Destroy() = 0, который тоже реализовать в My. Ну там в виде delete this, например. Или COW замутить, если надо. Обычно при построениии таких систем экспортированных объектов (скажем в COM, например) имеют какой-то интерфейс, который как раз отвечает за владение и прочие токости, а из него выводят уже все остальные.
Но если нужно экспортировать интерфейс синглетона, то можно так не заморачиваться а просто завести статический объект и возвращать из той самой функции его адрес.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском