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

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

Войти
Регистрация
Восстановить пароль
 
lupus1libertas
3 / 3 / 0
Регистрация: 27.07.2012
Сообщений: 19
#1

return и дестуктор - C++

31.07.2012, 00:14. Просмотров 708. Ответов 13
Метки нет (Все метки)

как передают значение объекта ,созданного в функции через return ?При return вызывается его деструктор и передать значение из функции уже не могу .Что нужно написать / перегрузить ,какие модификаторы для переменных функции и самой функции поставить ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.07.2012, 00:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос return и дестуктор (C++):

В чем разница между return и return false/true - C++
Привет всем. Вот подскажите плиз) return; return false; return true; расскажите пожалуйста об етих операторах.. чем они...

Как сделать так, что если файл существует return true, если нет - return false - C++
Здравствуйте, я новичок в программировании. Мой вопрос очень прост: как сделать так, что если файл существует return true если нет return...

Return - C++
Подскажите пожалуйста, каким образом return ом из функции возвращать 2 значения, напрмер 2 корня квардатного уравнения, найденных в одной...

Return - C++
Всем доброго времени суток! У меня возникла проблема с возвратом значения массива double *c, у меня берётся только одно последнее значение...

return (n<0) ? -n:n; - C++
Что это означает, return (n&lt;0) ? -n:n; не как не могу понять? Может быть это как if (n&lt;0) return true; else false; ...

return - C++
Здравствуйте, форумчане! На сколько мне известно оператор return передаёт управление операционной системе. А можно ли с его помощью...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
phpdreamer
0 / 0 / 0
Регистрация: 30.07.2012
Сообщений: 8
31.07.2012, 00:17 #2
может быть стоит объявить объект глобально, а в функции присвоить ему нужное значение?
0
lupus1libertas
3 / 3 / 0
Регистрация: 27.07.2012
Сообщений: 19
31.07.2012, 00:18  [ТС] #3
неа ,перегружаю + .
0
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
31.07.2012, 00:20 #4
Цитата Сообщение от lupus1libertas Посмотреть сообщение
как передают значение объекта ,созданного в функции через return ?При return вызывается его деструктор и передать значение из функции уже не могу .Что нужно написать / перегрузить ,какие модификаторы для переменных функции и самой функции поставить ?
напиши пример, чтоб не ломать голову
0
lupus1libertas
3 / 3 / 0
Регистрация: 27.07.2012
Сообщений: 19
31.07.2012, 00:26  [ТС] #5
ну если поможет
не шаблон .

C++ (Qt)
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
T& operator + ( T& a , T& b)
{
    T c;
        c = a;
    if(a.ReturnSignum()!=b.ReturnSignum())
    {
        if(a.ReturnSignum())c = a - abs(b);
        else c = b-abs(a);
    }
    else
    {
        if(a.ReturnSignum())
        {
        PlsAming(a,b,c);
        PlsFractional(a,b,c);
        }
        else
        {
        c = -a + -b ;
        c=-c;
        }
    }
    //cout<<c.ToString()<<endl;
    
    return c;
}
Честно ,не разбираюсь во всём этом .Кабы разбирался , не спрашивал .
0
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
31.07.2012, 00:27 #6
возвращаешь ссылку на локальный объект

Цитата Сообщение от lupus1libertas Посмотреть сообщение
C++
1
T& operator + ( T& a , T& b)
C++
1
T operator + (const T& a , const T& b)
ну и соответсвенно все вызываемые методы должны быть константными
0
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
31.07.2012, 00:28 #7
нужно возвращать объект, а не ссылку на него. конечно в таком варианте будет разрушатся локальный объект.
0
lupus1libertas
3 / 3 / 0
Регистрация: 27.07.2012
Сообщений: 19
31.07.2012, 00:34  [ТС] #8
чем поможет const для передаваемых параметров ?Насильно - специально внутри объекты не меняю .Любопытства ради .

Да ,мне нужно как-нибудь объект с ограниченной зоной видимости и временем жизни передать "вверх" .

Добавлено через 1 минуту
вариант с убрать амперсанд с возвращаемого типа не работает .
0
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
31.07.2012, 00:36 #9
Цитата Сообщение от lupus1libertas Посмотреть сообщение
не работает
а конкретнее
0
lupus1libertas
3 / 3 / 0
Регистрация: 27.07.2012
Сообщений: 19
31.07.2012, 00:42  [ТС] #10
поля уничтожаются .

Добавлено через 3 минуты
может можно как-нибудь модифицировать запись объявления функции ,дабы я не мучался ? =)

На хабре подсмотрел передавать конструктор ,типа return T() ;
но не хочу это делать ,есть другие варианты?
0
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
31.07.2012, 00:43 #11
Цитата Сообщение от lupus1libertas Посмотреть сообщение
поля уничтожаются .
с такой конкретикой вам никто не поможет, экстрасенсов тут нет! выложите хоть какой-то пример кода
0
lupus1libertas
3 / 3 / 0
Регистрация: 27.07.2012
Сообщений: 19
31.07.2012, 01:20  [ТС] #12
деструктор ---- мои поля .
Что вариант 1 ,что вариант 2 .На хабре подсмотрел передавать конструктор ,но с этим связываться не хочу .

Добавлено через 35 минут
Не актуально ,close() ;
0
John Prick
801 / 734 / 145
Регистрация: 27.07.2012
Сообщений: 2,107
Завершенные тесты: 3
31.07.2012, 09:53 #13
Цитата Сообщение от lupus1libertas Посмотреть сообщение
вариант с убрать амперсанд с возвращаемого типа не работает .
Цитата Сообщение от lupus1libertas Посмотреть сообщение
поля уничтожаются .
В классе T у тебя, скорее всего, не прописан конструктор копирования, который вызывается при передаче значения из функции. Напиши его таким, чтобы он копировал значения нужных тебе полей.
1
lupus1libertas
3 / 3 / 0
Регистрация: 27.07.2012
Сообщений: 19
31.07.2012, 10:16  [ТС] #14
Да ,именно это и сделал .
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2012, 10:16
Привет! Вот еще темы с ответами:

с++ while return - C++
Задание:Вводится точность e. Вычислить сумму ряда 1-1/3+1/5-1/7.... сумма Вычисления продолжать до тех пор, пока очередное слагаемое не...

return - C++
Вот такой вопрос, как вернуть значения из функции, и чтоб функция main это узнала? если на примере, то во так, допучтим есть функция...

return *this; - C++
return *this; Возвращает само себя?

Оператор return - C++
Помогите пожалуйста разобраться как работает оператор return. Что происходит после return n и после return fibonacci (n-1) + fibonacci...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
31.07.2012, 10:16
Ответ Создать тему
Опции темы

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