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

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

Войти
Регистрация
Восстановить пароль
 
m0
2 / 2 / 1
Регистрация: 03.12.2013
Сообщений: 138
#1

Как быть когда нужно вернуть NULL? - C++

21.08.2014, 11:44. Просмотров 363. Ответов 7
Метки нет (Все метки)

Как быть если нужно чтобы функция в некоторых условиях возвращала NULL, а не возвращаемый тип?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.08.2014, 11:44     Как быть когда нужно вернуть NULL?
Посмотрите здесь:

C++ Не работает код: m_web1.Navigate ('gidro.htm',0,0,NULL,NULL);
Зачем вообще нужно слово NULL если можно просто написать 0? C++
C++ Когда нужно ставить 0.0f в передаче переменной
нужно исправить ошибку stream !=NULL C++
C++ Нужно ли при удалении динамического массива присваивать NULL?
C++ Множественное наследование - когда оно действительно нужно?
Когда нужно лочить ( делать lock() ) сразу нескольких мьютексов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
takhvatulin
10 / 10 / 0
Регистрация: 04.04.2014
Сообщений: 140
21.08.2014, 11:50     Как быть когда нужно вернуть NULL? #2
C++
1
if(тырыпыры != халигали) return NULL;
m0
2 / 2 / 1
Регистрация: 03.12.2013
Сообщений: 138
21.08.2014, 11:58  [ТС]     Как быть когда нужно вернуть NULL? #3
Нет, у меня есть четко возвращаемый тип. ВС2012 ругается.
0x10
2443 / 1615 / 236
Регистрация: 24.11.2012
Сообщений: 3,963
21.08.2014, 12:01     Как быть когда нужно вернуть NULL? #4
См boost::optional, например.
m0
2 / 2 / 1
Регистрация: 03.12.2013
Сообщений: 138
21.08.2014, 12:04  [ТС]     Как быть когда нужно вернуть NULL? #5
0x10, А как-то нельзя? Если возвращаемый int, то бывает, что иногда нужно NULL никак в С++?
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
21.08.2014, 12:08     Как быть когда нужно вернуть NULL? #6
m0, NULL это нулевое значение для указателя. Не стоит его использовать в каких-то других целях (в С++11 NULL использовать вообще не стоит, лучше nullptr).
0x10
2443 / 1615 / 236
Регистрация: 24.11.2012
Сообщений: 3,963
21.08.2014, 12:26     Как быть когда нужно вернуть NULL? #7
1. Можно вернуть специальное значение, которое будет свидетельствовать об ошибке. Вариант не подходит, если функция может вернуть любое значение из допустимого диапазона.
2. Можно кинуть исключение.
3. Можно возвращать указатель на объект. В этом случае чтобы не заморачиваться с освобождением памяти, лучшесразу использовать умные указатели.
4. Про optional уже сказал.
5. Можно передать в функцию выходной параметр, а возвращать из нее код - "ok" или "error".

Какой вариант лучше - нужно смотреть в конкретной задаче.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2014, 18:16     Как быть когда нужно вернуть NULL?
Еще ссылки по теме:

C++ Когда оператор должен быть обязательно членом класса, и когда он обязательно не принадлежит классу?
Составить программу вычисления корня. Учесть случаи, когда корень не может быть вычислен C++
C++ Когда нужно использовать исключения
Объяснить (с примерами) для чего нужен RTTI, как и когда его можно и нужно использовать C++
C++ Как перегрузить операцию деления, когда нужно переменную класса поделить на встроенный тип

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

Или воспользуйтесь поиском по форуму:
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6346 / 2993 / 295
Регистрация: 04.12.2011
Сообщений: 8,027
Записей в блоге: 3
21.08.2014, 18:16     Как быть когда нужно вернуть NULL? #8
m0, ещё можно по ссылке возвращать, если синтаксис вызова это позволяет. Тогда тип возврата - bool (или int или др. сравнимый тип) и можно решать дальше, использовать ли значение по ссылке.
Yandex
Объявления
21.08.2014, 18:16     Как быть когда нужно вернуть NULL?
Ответ Создать тему
Опции темы

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