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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ надо изменить его так чтобы он находил сумму любых введёных чисел и при вводе числа 0 программа завершалась http://www.cyberforum.ru/cpp-beginners/thread781750.html
есть программный код,надо изменить его так чтобы он находил сумму любых введёных чисел и при вводе числа 0 программа завершалась #include <iostream> #include <conio.h> using namespace std; ...
C++ Остановка после cin здравствуйте, начал изучение C++, скачал visual С++ 2010 и сразу же столкнулся с проблемой. заключается она в том что есть такой код: #include <iostream> using namespace std; int main() { int... http://www.cyberforum.ru/cpp-beginners/thread781734.html
Подскажите как работает программа C++
Программа выводит для заданного массива все простые числа. Помогите понять как работают строки 14-20 и 24-32 Спасибо #include <cstdlib> #include <iostream> #include <iomanip> using namespace...
Unresolved external. Borland ругается C++
Всем доброго времени! в общем проблема такова, в классе Name имеется статический объект класса fstream f1. При таком раскладе Борланд отказывается компилировать эту программу. Выдает следующее...
C++ Выделение памяти malloc http://www.cyberforum.ru/cpp-beginners/thread781715.html
не работает пример из лекции , там пример на доске такой написан - #include <stdlib.h> int main() { int *p=malloc(10000*sizeof(int));//выделили память free(p);//освободили } но такой...
C++ Программно запустить приложение Access 2010 и открыть базу с паролем Доброго времени суток! Как программно в C++ запустить приложение Access 2010 и открыть базу с паролем? Без пароля база нормально открывается, но если она с паролем, то его необходимо вводить... подробнее

Показать сообщение отдельно
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 в этом случае вообще не разу не должен был сработать?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru