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

Switch управление - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вывести строку в обратном порядке http://www.cyberforum.ru/cpp-beginners/thread1567888.html
нужно вывести строку в обратном порядку .где ошибка? #include < iostream> #include <conio.h> #include<cstring> using namespace std; void main() { const int n = 4;
C++ Арканоид с OpenGL Привет всем, сделал Арканоид в Visual Studio с помощью OpenGL, но не могу реализовать чтобы при уничтожении всех блоков шариком, игра заканчивалась. Если кто может это сделать или помочь в этом пожалуйста помогите. Вся программа во вложении. http://www.cyberforum.ru/cpp-beginners/thread1567873.html
C++ Наследование - вызов конструкторов и деструкторов
Делаю два класса - предок и потомок: class class_1_type { private: int t; public: class_1_type(int t_) { t = t_; cout << "class_1. object: " << this << " - constructor t = " << t << endl; } ~class_1_type() { cout << "class_1. object: " << this << " - destructor t = " << t << endl; } };
C++ Почему перегруженные операторы ввода/вывода нельзя сделать членами класса?
Добрый вечер, Решаю домашнее задание, и вот вопрос возник. Создал класс и перегрузил ввода/вывод. Но не нашел информации почему перегрузки ввода/вывода friend. Почему функция не может быть просто istream& operator>> ,а обязательно через friend? friend istream& operator>>(istream& istr, shaverma& sh){ cout << endl; cout << "Name of shaverma: " ; istr >> sh.name; cout << "Weight...
C++ Найти площадь заштрихованной области http://www.cyberforum.ru/cpp-beginners/thread1567862.html
Всем Доброго Времени суток. Мне в техникуме дали задание (прикреплено), и я почему-то совсем не могу понять как это решить... знания в программированию не самые худшие, а во о в математике...
C++ Оператор взятия адреса Доброй ночи, оператор взятия адресса не перечислен среди Special member functions, но он реализуется компилятор по умолчанию, если его не реализовать явно. #include <iostream> using namespace std; class A подробнее

Показать сообщение отдельно
DrOffset
6418 / 3792 / 876
Регистрация: 30.01.2014
Сообщений: 6,578
01.11.2015, 04:40     Switch управление
Цитата Сообщение от mster-doc Посмотреть сообщение
Почему случилось, как избежать.
case - это метки (как goto метки). Они не вносят области видимости.
Допустим, ниже у тебя еще один case. Если мы попадем туда, то у нас выше будут доступны переменные a, cstr, format, tr и ex. Но все эти переменные будут в неопределенном состоянии, т.к. мы пропустили их инициализацию. Поэтому такое явно запрещается компилятором.
Исправить это можно внеся область видимости вручную:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
switch (i)
{
    case 1:
     {
        char ex[] = "c";
        unsigned short tr = 1;
        char format[] = ".txt";
 
        string a = "c" + to_string(tr) + ".txt";
 
        char *cstr = new char[a.length() + 1];
        strcpy(cstr, a.c_str());
.....
     }
     break;
 
Текущее время: 11:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru