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

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

Войти
Регистрация
Восстановить пароль
 
Пёс
228 / 76 / 4
Регистрация: 03.02.2013
Сообщений: 311
#1

Начальное значение для переменных-перечислений - C++

09.02.2013, 21:59. Просмотров 456. Ответов 4
Метки нет (Все метки)

C++
1
enum {purchasing, selling, noAction} action;
При таком объявлении, начальное значение action в 10 из 10 запусков - purchasing. Суть вопроса: Это закономерное поведение или всего лишь воля судьбы, а на самом деле Action - UB?

И разрешена ли такая инициализация?

C++
1
enum {purchasing, selling, noAction} action = noAction;
Добавлено через 1 час 44 минуты
Эксперты С++, Вы где?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2013, 21:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Начальное значение для переменных-перечислений (C++):

Восстановить начальное значение числа - C++
из книги "сборник задач по программированию/2-е издание"--Златопольский нужно решение на задачу 2.24,на С++

Возможно ли изменить начальное значение переменной? - C++
У нас есть код: int main(){ const int val=5; cout<<val; //Какая то магия... } Нужно, чтобы после запуска программы...

Сделать цикл где начальное, конечное значение и шаг вводятся с клавиатуры - C++
Условие(смотри вложение) Необходимо составить цикл с постусловием где начальное и конечное значение, а так же шаг вводятся с клавиатуры ...

Breakpoint: при попытке вывести элементы класса указатель теряет начальное значение - C++
При попытке вывести элементы класса указатель теряет начальное значение. template<typename T> void Graph<T>::print() { ...

Как дописать в конец числа цифру при этом обнулив его начальное значение на с++? - C++
Как дописать в конец числа цифру при этом обнулив его начальное значение на с++? Например было 0,152 стало 0,0005; 1,22=0,005

Диапазон перечислений - C++
Как узнать диапазон перечислений? enum e2 {a = 3, b = 9}; В книге написано диапазон перечислений равен (0; 15) Говорится что...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
09.02.2013, 22:14 #2
если вопрос академический - то я не знаю ответов
если практический, то так хитро и туманно лучше не писать. раз возникают вопросы - то это плохой код.
0
Пёс
228 / 76 / 4
Регистрация: 03.02.2013
Сообщений: 311
10.02.2013, 20:06  [ТС] #3
Ребят, ну что никто не знает ?
0
NoMasters
Псевдослучайный
1754 / 1097 / 72
Регистрация: 13.09.2011
Сообщений: 3,134
10.02.2013, 20:10 #4
Если переменная глобальная, то по умолчанию она инициализируется нулём, у emun первый индекс по умолчанию тоже ноль.
0
Croessmah
Эксперт CЭксперт С++
13227 / 7499 / 845
Регистрация: 27.09.2012
Сообщений: 18,417
Записей в блоге: 3
Завершенные тесты: 1
10.02.2013, 20:13 #5
Цитата Сообщение от Пёс Посмотреть сообщение
При таком объявлении, начальное значение action в 10 из 10 запусков - purchasing. Суть вопроса: Это закономерное поведение или всего лишь воля судьбы, а на самом деле Action - UB?
глобальные переменные инициализируются нулем, так что action будет 0, даже если у Вас будет перечисление начинаться не с нуля

Добавлено через 1 минуту
Цитата Сообщение от Пёс Посмотреть сообщение
И разрешена ли такая инициализация?
C++
1
enum {purchasing, selling, noAction} action = noAction;
можно и так.

а вот так что попадется в памяти, то и будет.
C++
1
2
3
4
5
#include <iostream>
int main(){
    enum {purchasing=43, selling, noAction} action;
    std::cout<<action<<std::endl;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2013, 20:13
Привет! Вот еще темы с ответами:

Обход ограниечения перечислений - C++
Здравствуйте. Помогите пожалуйста решить следующую задачу. Необходимо обойти ограничение перечислений, которое не позволяет кроме...

Узнать количество перечислений в enum - C++
Добрый день! Как узнать количество перечислений в ABCDEF. enum ABCDEF{ P1, P2, P3 }; //Как-то так должно быть: ...

Вопрос о разумном использовании структур\перечислений\объединений - C++
Доброго времени суток, Форумчане! Цель работы - написание что-то типа базы данных. Допустим я захотел сделать базу видео.. и вот,...

Значение переменных - C++
Для Х, принимающего значения от XN до XK с шагом ∆X, определить Y. При условии: Y=A,если x&gt;g Y=B,если 0&lt;=x&lt;=g Y=C,если x&lt;0 ...


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

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

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