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

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

Войти
Регистрация
Восстановить пароль
 
razor_ua
10 / 10 / 0
Регистрация: 20.05.2011
Сообщений: 71
#1

? : вместо if - C++

20.06.2013, 23:43. Просмотров 370. Ответов 5
Метки нет (Все метки)

C++
1
2
3
4
5
bool compare(const char* s1,const char* s2, int (*fp) (const char*, const char*) )
{
    ( !(*fp)(s1,s2) ) ? return true : return false;
 
}
пишет 2 ошибки:
1) на return true - требуется выражение
2) на ; - требуется двоеточие

А если оформить в виде

C++
1
2
3
if(!(*fp)(s1,s2))
        return true;
    else return false;
- тогда все ок.

в чем беда-то? просто интересно.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2013, 23:43     ? : вместо if
Посмотрите здесь:

C++ ввод букв вместо цифр
Почему вместо 2 выводится белеберда? C++
вместо закрытия зависает C++
Задан массив целых чисел. Записать +1 вместо максимального элемента массива и -1 вместо минимального C++
C++ Задан массив целых чисел. Записать +1 вместо максимального элемента массива и -1 вместо минимального
Winsock - UDP вместо ТСР C++
C++ Fstream пишет 13 вместо 10
C++ Встроенный тип вместо пользовательского
Использовать вместо массивов - указатели C++
Массивы вместо структур C++
C++ Вместо кода абракадабра
Модифицируйте, пожалуйста, программу так, чтобы вместо 0 выводилось “false”, а вместо 1 – ”true” C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Quantity
12 / 12 / 1
Регистрация: 06.06.2012
Сообщений: 136
20.06.2013, 23:44     ? : вместо if #2
Надо не
C++
1
( !(*fp)(s1,s2) ) ? return true : return false;
А
C++
1
return ( !(*fp)(s1,s2) ) ? true : false;
razor_ua
10 / 10 / 0
Регистрация: 20.05.2011
Сообщений: 71
20.06.2013, 23:57  [ТС]     ? : вместо if #3
О.к., спасибо!
все же не пойму почему ошибка.

Эту конструкцию не обязательно же писать в return.

Или это связано с типом возвращаемого значения в данном случае?
MrGluck
Ворчун
Эксперт CЭксперт С++
6677 / 3858 / 511
Регистрация: 29.11.2010
Сообщений: 10,217
21.06.2013, 00:04     ? : вместо if #4
C++
1
2
3
4
bool compare(const char* s1,const char* s2, int (*fp) (const char*, const char*) )
{
    return !(*fp)(s1,s2);
}
и не смешите никого тернарным оператором в return в булевой функции
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6413 / 3052 / 300
Регистрация: 04.12.2011
Сообщений: 8,271
Записей в блоге: 3
21.06.2013, 00:16     ? : вместо if #5
Цитата Сообщение от razor_ua Посмотреть сообщение
Или это связано с типом возвращаемого значения в данном случае?
Это связано с синтаксисом. Тренарный оператор:
(выражение)? выражение : выражение ;
точка с запятой в конце, - окончание тренарного оператора.
Внутри никаких операторов не ожидается.
razor_ua
10 / 10 / 0
Регистрация: 20.05.2011
Сообщений: 71
21.06.2013, 00:30  [ТС]     ? : вместо if #6
спасибо всем, растолковали!
Yandex
Объявления
21.06.2013, 00:30     ? : вместо if
Ответ Создать тему
Опции темы

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