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

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

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

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

20.06.2013, 23:43. Просмотров 377. Ответов 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++
Исправьте пожалуйста программу вместо структур должны использоваться массивы, буду очень благодарен #include "stdafx.h" #include...

вместо закрытия зависает - C++
#include <iostream> #include <fstream> #include <stdlib.h> using namespace std; bool petla = true; int main(); int w = 0;...

Fstream пишет 13 вместо 10 - C++
столкнулся с весьма необычной проблемой. открываю файл для записи if (!Open(filename, 1))return false; bool FILE::Open(str filename,...

Вместо кода абракадабра - C++
Делал программу на одном компьютере,запустил на другом.В итоге вместо кода увидел(часть кода,форм. cpp):...

Выводит INF вместо значения - C++
Не ругайте за стиль , только учусь. проблема с выводом значения X строка 63,68. Вроде 97/97 должно быть 1, он даёт INF // решение систем...

Встроенный тип вместо пользовательского - C++
Скажите, пожалуйста, как переделать эту задачу, чтобы вместо пользовательского типа был int. ...

ввод букв вместо цифр - C++
Привет. Я новичок. Подскажите как сделать так чтобы, в консольной программе при вводе букв вместо цифр выдавалось сообщение об ошибке.

Почему вместо 2 выводится белеберда? - C++
// mamalclass.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include...

Использование рекурсии вместо цикла - C++
Помогите, пожалуйста! Нужно вместо циклов использовать рекурсию, как это сделать? #include <iostream> using namespace std; int...

Winsock - UDP вместо ТСР - C++
В /cpp-networks/ довольно грустно и пустынно, так что боюсь вынужден скопировать тему сюда.Ссылка на старую тему для модератора:...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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Эксперт С++
7148 / 4314 / 629
Регистрация: 29.11.2010
Сообщений: 11,730
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
Комп_Оратор)
Эксперт по математике/физике
6442 / 3081 / 306
Регистрация: 04.12.2011
Сообщений: 8,482
Записей в блоге: 4
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