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

как вернуть объект из ф-и, если, возможно, объекта не существует? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить, является ли заданная квадратная матрица симметричной относительно главной диагонали. http://www.cyberforum.ru/cpp-beginners/thread435379.html
Не могу решить задачу на С++ Вот условия: Определить, является ли заданная квадратная матрица симметричной относительно главной диагонали.
C++ Вычисление функций с использованием ее разложение в степенной ряд Для х изменяющегося от а до b с шагом (b-a) / k, где (k = 10), вычислить функцию f (x), используя ее разложение в степенной ряд в двух случаях: а) для заданного n; б) для заданной точности S(сумма) (S = 0.0001). Для сравнения найти точное значение функции: Функция: y = (пи^2)/8 - пи/4 * |x| диапазон изменения аргумента: пи/5 <= x <=пи http://www.cyberforum.ru/cpp-beginners/thread435345.html
Автоматическая смена раскладки C++
При запуске программы стоит рус. раскладка, меня каждый раз неудобно. Как можно решить этот вопрос программно?
C++ Кто знает как написать прогу замены пробелов на \t
Так звучит задание: Символи новой строки и табуляции в s превратить на видимые последовательности букв \n и \t в t (другие буквы оставить без изменений)
C++ Программа не работает посмотрите код http://www.cyberforum.ru/cpp-beginners/thread435326.html
Помогите пожалуйста с кодом программы Вычислить сумму 1-1\2+1\3-…+(-1)sqr(n+1)*(1\n) //#include <stdafx.h> #include <cstdlib> #include <iostream> #include "cmath"
C++ Обработка изображений, чистая математик + Си++ | for newbie Сижу я за ноутом. А тачпад всё не работает: Вы не представляете, какие это вызывает неудобства, например, в метро. Пытался пересесть на awasome, но openbox милее и красивее (имхо). Вот-с с другом как-то игрался в XBox360 с кинектом. Это конечно очень и очень прикольно - но не более того. Но вот что меня смутило - моя HD камера в ноуте (весьма приличного качества) простаивает! Зачем она?.. А... подробнее

Показать сообщение отдельно
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
26.01.2012, 11:58     как вернуть объект из ф-и, если, возможно, объекта не существует?

Не по теме:

Цитата Сообщение от Андрей2011 Посмотреть сообщение
Так, уважаемый, silent_1991, поясните тогда уж в чем не правильно я назвал свой класс? Очень любопытно стало.
Как я уже и сказал, транслит в программировании неуместен. Класс "Точка"? Ну так назовите его Point (или, как вы сказали, принято в среде разработчиков на Builder, TPoint).



Цитата Сообщение от Андрей2011 Посмотреть сообщение
при варианте, когда нет объекта, то ф-я возвращает 0
А вот этого я не понял. Какая из функций возвращает 0? Первая? Тогда что подразумевается под нулём? Объект класса "Точка", инициализированный конструктором по умолчанию? Если же имеется ввиду вторая функция, то тут уж я совсем не понял, как может возвращаться 0.

Добавлено через 9 минут
Вот пример с реализацией статического члена, представляющего некий невалидный результат:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
#include <vector>
#include <algorithm>
 
class Foo
{
public:
    static const Foo null;
    
public:
    Foo(int foo = 0):
    m_foo(foo)
    {
    }
    
    int get_foo() const
    {
        return m_foo;
    }
    
private:
    int m_foo;
};
 
const Foo Foo::null = Foo(-1);
 
bool operator==(const Foo& left, const Foo& right)
{
    return left.get_foo() == right.get_foo();
}
 
const Foo& find_foo(const std::vector<Foo>& vec, const Foo& val)
{
    std::vector<Foo>::const_iterator res = std::find(vec.begin(), vec.end(), val);
    
    return res == vec.end() ? Foo::null : *res;
}
 
int main()
{
    std::vector<Foo> vec;
    
    vec.push_back(Foo(1));
    vec.push_back(Foo(2));
    vec.push_back(Foo(3));
    
    std::cout << find_foo(vec, Foo(1)).get_foo() << std::endl
              << find_foo(vec, Foo(3)).get_foo() << std::endl
              << find_foo(vec, Foo(10)).get_foo() << std::endl;
    
    return 0;
}
 
Текущее время: 09:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru