Форум программистов, компьютерный форум CyberForum.ru

Switch или iif-else-if. Как исправить ошибку - C++

Восстановить пароль Регистрация
 
bgm313
12 / 12 / 2
Регистрация: 27.07.2012
Сообщений: 208
03.08.2012, 23:49     Switch или iif-else-if. Как исправить ошибку #1
Не компилируется код. Говорит, что пропуск инициализации. Но мне нужно создать объекты определённого класса по выбору пользователя. Можно ли тут применить switch или прибегнуть к конструкции if-else-if?

C++
1
2
3
4
5
6
7
8
switch(ch){
 case'1':
        myClass *ob = new myClass();
        delete ob;
 case '2':
        myOtherClass *asd = new myOtherClass();
        delete asd;
};
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.08.2012, 23:49     Switch или iif-else-if. Как исправить ошибку
Посмотрите здесь:

как исправить ошибку C++
Как исправить ошибку? C++
Как исправить ошибку C++
C++ Как исправить ошибку?
C++ Как исправить ошибку?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
04.08.2012, 00:06     Switch или iif-else-if. Как исправить ошибку #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
switch(ch) {
    
    case '1': {         
        myClass *ob = new myClass();
        delete ob;
        break;
    }
            
    case '2': {
        myOtherClass *asd = new myOtherClass();
        delete asd;        
        break;
    }
}
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.08.2012, 12:56     Switch или iif-else-if. Как исправить ошибку #3
Цитата Сообщение от bgm313 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
switch(ch){
 case'1':
 myClass *ob = new myClass();
 delete ob;
 case '2':
 myOtherClass *asd = new myOtherClass();
 delete asd;
};
А в чём смысл такой конструкции? Создаёте объект и тут же его уничтожаете.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
04.08.2012, 19:13     Switch или iif-else-if. Как исправить ошибку #4
Цитата Сообщение от rangerx Посмотреть сообщение
myClass *ob = new myClass();
switch/case не даст такое сделать. В одной строке объявляете, в другой инициализируете.

Добавлено через 7 минут
Цитата Сообщение от bgm313 Посмотреть сообщение
Но мне нужно создать объекты определённого класса по выбору пользователя.
Можно использовать Abstract Factory, если эти классы как-то связаны между собой.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
04.08.2012, 23:05     Switch или iif-else-if. Как исправить ошибку #5
Цитата Сообщение от soon Посмотреть сообщение
switch/case не даст такое сделать. В одной строке объявляете, в другой инициализируете.
Не совсем понял, что ты имеешь в виду. Переменная объявлена внутри блока, причём здесь switch/case?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.08.2012, 06:09     Switch или iif-else-if. Как исправить ошибку #6
rangerx, Ок, не увидел блоки, извиняюсь. Тогда можно считать, что я цитировал ТС.
Yandex
Объявления
05.08.2012, 06:09     Switch или iif-else-if. Как исправить ошибку
Ответ Создать тему
Опции темы

Текущее время: 13:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru