Есть какой-то способ выбрать какой цикл использовать в зависимости от значения bool переменной? Внутри циклов всё одно и то же, поэтому хочется выбрать сам цикл 1 раз.
Есть bool переменная Up. Если её значение true нужен цикл LOOP_Up, если false LOOP_Down.
Andrei Iakovlev #: Есть какой-то способ выбрать какой цикл использовать в зависимости от значения bool переменной?
// перебор элементов от first до last в требуемую сторону, в зависимости от last больше или меньше чем firstfor( int i=first, increment=(last>=first?1:-1) ;
i!=last+increment ;
i+=increment ) {
...
}
Есть какой-то способ выбрать какой цикл использовать в зависимости от значения bool переменной? Внутри циклов всё одно и то же, поэтому хочется выбрать сам цикл 1 раз.
Ошибка возникает из-за того, что перед компиляцией выполняется подстановка вместо имён, указанных после #define, того, что идёт дальше в этой директиве.
Поэтому ваш вариант разворачивался в:
if(Up)
for(i = 21; i >= start; i--)
elsefor(i = start; i < 22; i++) {
//...
}
После первого for() нет тела цикла, а идёт сразу else. Об этом и сообщается в ошибке.
Не знал, что в условном операторе ? : во 2-ом и 3-ем операндах можно использовать выражения операций отношения, а проверить не догадался. Давно было интересно, как можно быстро поменять ">" на "<".
bool h = true; char g = 3, q = 4;
Print((h ? g > q : g < q) ? 5 : 6);
Не знал, что в условном операторе ? : во 2-ом и 3-ем операндах можно использовать выражения операций отношения, а проверить не догадался. Давно было интересно, как можно быстро поменять ">" на "<".
Насколько помню, в тернарном операторе в двух последних операндах можно использовать любые по сложности выражения, результатом которых будут значения одинакового типа. В этом примере есть два выражения, превращающиеся в логические значения. Но "можно" далеко не всегда означает "нужно". То есть порой лучше написать больше строк кода, которые будут понятнее человеку, чем громоздкую конструкцию с тернарными операторами. Но тут каждый сам решает, как ему удобнее.
Есть какой-то способ выбрать какой цикл использовать в зависимости от значения bool переменной? Внутри циклов всё одно и то же, поэтому хочется выбрать сам цикл 1 раз.
Есть bool переменная Up. Если её значение true нужен цикл LOOP_Up, если false LOOP_Down.
При таком варианте получается ошибка:
Так тоже не работает:
if(Up) LOOP_Up if(!Up) LOOP_Down {Есть какой-то способ выбрать какой цикл использовать в зависимости от значения bool переменной?
как-то примерно так :-)
Интересно реализовано. Спасибо.
Так тоже можно:
Есть какой-то способ выбрать какой цикл использовать в зависимости от значения bool переменной? Внутри циклов всё одно и то же, поэтому хочется выбрать сам цикл 1 раз.
При таком варианте получается ошибка
Ошибка возникает из-за того, что перед компиляцией выполняется подстановка вместо имён, указанных после #define, того, что идёт дальше в этой директиве.
Поэтому ваш вариант разворачивался в:
После первого for() нет тела цикла, а идёт сразу else. Об этом и сообщается в ошибке.После первого for() нет тела цикла, а идёт сразу else. Об этом и сообщается в ошибке.
Я понял.
up ? i >= start : i < end
Не знал, что в условном операторе ? : во 2-ом и 3-ем операндах можно использовать выражения операций отношения, а проверить не догадался. Давно было интересно, как можно быстро поменять ">" на "<".
Не знал, что в условном операторе ? : во 2-ом и 3-ем операндах можно использовать выражения операций отношения, а проверить не догадался. Давно было интересно, как можно быстро поменять ">" на "<".
Друзья, напомните пожалуйста, где то читал про конструкторы и деструкторы. Порядок создания и уничтожения, но никак не могу найти...
Нужно ли в потомке вызывать конструктор родителя?
Нужно ли в потомке вызывать деструктор родителя?
Покажите примеры пожалуйста пару примеров, особенно про уничтожение.