Нет, вы не можете сделать что-то подобное. Помимо конфликта имен внутри коммутатора, у вас также есть проблема, что переменная выходит из области видимости, когда вы выходите из коммутатора.
Кроме того, MyClass myObject();
объявляет функцию, возвращающую MyClass
. Вы бы объявили переменную как просто MyClass myObject;
.
Если вам нужны три разных объекта, возможно, вам следует написать три разные функции. Или, возможно, шаблонная функция, которую можно использовать с разными типами.