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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
bgm313
12 / 12 / 2
Регистрация: 27.07.2012
Сообщений: 208
#1

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

03.08.2012, 23:49. Просмотров 508. Ответов 5
Метки нет (Все метки)

Не компилируется код. Говорит, что пропуск инициализации. Но мне нужно создать объекты определённого класса по выбору пользователя. Можно ли тут применить 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++):

Исправить ошибку: break statement not within loop or switch - C++
#include <iostream> using namespace std; int main() { int x; {cout << "Grade"; cin >>x; ...

Как исправить ошибку или написать лучше - C++
Всем привет! Столкнулся с ошибкой и не знаю из-за чего она возникает. Как исправить ее? Это .h #ifndef LISTPERSON #define...

Подскажите как исправить ошибку. прога ломается на 79 строке. а ошибку не выдает - C++
#include <iostream> #include <cstdlib> #include <ctime> using namespace std; int chisla(int a,int b) { ...

Как исправить ошибку? - C++
Программирую в КБ. Выходит одна ошибка, понятия не имею как исправить. #include <stdio.h> #include <stdlib.h> #include <string.h> ...

Как исправить ошибку - C++
Process exited with return value 3221225725 выскакивает после запуска программы, использую интовый массив. как снять это ограничение?

Как исправить ошибку? - C++
#include <stdio.h> #include <tchar.h> #include <stdlib.h> #include <locale.h> #include <string.h> //Стуктура времени ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
04.08.2012, 00:06 #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
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.08.2012, 12:56 #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
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
04.08.2012, 19:13 #4
Цитата Сообщение от rangerx Посмотреть сообщение
myClass *ob = new myClass();
switch/case не даст такое сделать. В одной строке объявляете, в другой инициализируете.

Добавлено через 7 минут
Цитата Сообщение от bgm313 Посмотреть сообщение
Но мне нужно создать объекты определённого класса по выбору пользователя.
Можно использовать Abstract Factory, если эти классы как-то связаны между собой.
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
04.08.2012, 23:05 #5
Цитата Сообщение от soon Посмотреть сообщение
switch/case не даст такое сделать. В одной строке объявляете, в другой инициализируете.
Не совсем понял, что ты имеешь в виду. Переменная объявлена внутри блока, причём здесь switch/case?
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.08.2012, 06:09 #6
rangerx, Ок, не увидел блоки, извиняюсь. Тогда можно считать, что я цитировал ТС.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.08.2012, 06:09
Привет! Вот еще темы с ответами:

Как исправить ошибку? - C++
#include <conio.h> #include <math.h> #include <iostream> using namespace std; int fact(int a) {if (a==0) return 1; else return...

Как исправить ошибку? - C++
int f(int, int, int); void koorx(int, int, int, int); int nod(int, int); void koorx(int &x, int &y, int vx, int vy, int t = 1) { ...

Как исправить ошибку? - C++
Предупреждение 5 warning C4700: использована неинициализированная локальная переменная "a" 93строчка #include <conio.h> ...

Как исправить ошибку? - C++
#include <fstream.h> #include <string.h> #include <conio.h> #include <iomanip.h> #include <stdlib.h> #include <io.h> ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
05.08.2012, 06:09
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru