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

Деструктор вызывается до то возвращения значения из функции - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ надо изменить его так чтобы он находил сумму любых введёных чисел и при вводе числа 0 программа завершалась http://www.cyberforum.ru/cpp-beginners/thread781750.html
есть программный код,надо изменить его так чтобы он находил сумму любых введёных чисел и при вводе числа 0 программа завершалась #include <iostream> #include <conio.h> using namespace std; int a, b, c; int main() { cin >> a >> b;
C++ Подскажите как работает программа Программа выводит для заданного массива все простые числа. Помогите понять как работают строки 14-20 и 24-32 Спасибо #include <cstdlib> #include <iostream> #include <iomanip> using namespace std; const int SIEVE_SIZE = 1000; http://www.cyberforum.ru/cpp-beginners/thread781731.html
Unresolved external. Borland ругается C++
Всем доброго времени! в общем проблема такова, в классе Name имеется статический объект класса fstream f1. При таком раскладе Борланд отказывается компилировать эту программу. Выдает следующее сообщение: Unresolved external 'Name::f1' referenced from C:\PROGRAM FILES (X86)\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ Если же сделать объект f1 глобальной переменной - всё функционирует превосходно....
Выделение памяти malloc C++
не работает пример из лекции , там пример на доске такой написан - #include <stdlib.h> int main() { int *p=malloc(10000*sizeof(int));//выделили память free(p);//освободили } но такой пример отказывается компилироваться с ошибкой error: invalid conversion from 'void*' to 'int*' |тоесть, указатель должен быть void*? и как с ним работать тогда?
C++ Программно запустить приложение Access 2010 и открыть базу с паролем http://www.cyberforum.ru/cpp-beginners/thread781713.html
Доброго времени суток! Как программно в C++ запустить приложение Access 2010 и открыть базу с паролем? Без пароля база нормально открывается, но если она с паролем, то его необходимо вводить вручную Как в коде передавать пароль автоматически? Например, пароль 123 код C++ : #include "stdafx.h" #include <windows.h>
C++ Строки: нахождение символов и замена слов Здравствуйте, дорогие форумчане. ----------------------------------- Помогите, пожалуйста, решить задачу. Вот задание: ----------------------------------- Багаж пассажира характеризуется количеством вещей и общим весом вещей. Дан массив, содержащий сведения о багаже нескольких пассажиров. Выяснить, имеется ли пассажир, багаж которого состоит из одной вещи весом менее 30 кг.... подробнее

Показать сообщение отдельно
1ые
1 / 1 / 0
Регистрация: 19.01.2013
Сообщений: 98
08.02.2013, 09:13  [ТС]     Деструктор вызывается до то возвращения значения из функции
А что если мне нужно просто вывести результат через cout
я уже перегрузил оператор <<
C++
1
2
3
4
5
6
7
8
9
10
ostream & operator << (ostream & output, const hi & b)
{
    hi::struc * ptr = b.last;
    while(ptr)
    {
        output << ptr->a;
        ptr = ptr->prev;
    }
    return output;
}
и в программе написал

C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <hugeint1.h>
using namespace std;
int main()
{
    hi a("123"), b("456");
    cout << "Rezult" <<  a+b;
    system("pause");
    return 0;
}
После оператора + вызывается конструктор копии но проблема что копировать некуда по сути и конструктор выводит ошибку т.к идет обращение к несуществующей памяти

Добавлено через 15 минут
конструктор копии:
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
hi::hi(const hi & val)
{
    if (this != &val)
    {
        struc * f = last;
        struc * vrem = 0;
        while(f)
        {
            vrem = f;
            f = f->prev;
            delete vrem;
        }
 
        struc * qw = val.last;
        struc * qwc = new struc(val.last->a);
        last = qwc;
        qw = qw -> prev;
        while(qw)
        {
            qwc -> prev = new struc(qw -> a);
            qwc = qwc -> prev;
            qw = qw -> prev;
        }
        first = qwc;
    }
    else
    {
        cout << "sdsa";
    }
}
Ошибку выдает на 11 строке понятно почему ошибка но ведь если я не ошибаюсь while в этом случае вообще не разу не должен был сработать?
 
Текущее время: 05:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru