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

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

Войти
Регистрация
Восстановить пароль
 
 
bohdan_si
12 / 12 / 2
Регистрация: 03.10.2012
Сообщений: 83
#1

Не запускается деконструктор. Где ошибка? - C++

25.01.2013, 01:12. Просмотров 502. Ответов 17
Метки нет (Все метки)

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
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
class Sort{
      public:
            int x[10];
            int max;
            Sort();
            ~Sort();
};      
Sort::Sort(){
            int i;
            max=x[0];
            for(i=0;i<10;i++){
            cin >> x[i];
            if(max<x[i])
               max=x[i];
                }
}       
Sort::~Sort(){
           cout << max ;
           cout << "GOOD" ;
}
 
int main(){
    
    Sort a;
    system("PAUSE");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2013, 01:12     Не запускается деконструктор. Где ошибка?
Посмотрите здесь:

не запускается программа,в чем ошибка - C++
#include&lt;iostream&gt; #include &lt;stdio.h&gt; using namespace std; switch(days); void(main); { case1:{cout&lt;&lt;&quot;понедельник&quot;; cout...

Где ОШИБКА? - C++
есть программа которая выводит массив рандомных чисел, (размерность массива:200, диапазон значений: 0-100 ) и подсчитывает количество...

Где ошибка ? - C++
Найти наибольший общий делитель для двух целых чисел. #include &lt;iostream&gt; using namespace std; int main() { int a,b; ...

Где ошибка? - C++
Сейчас с товарищем сидим делаем лабу. У него работает у меня нет. Он мне скидывает скрин своего положения дел(кодим в QNX под VMWARE). На...

Где ошибка? - C++
#include &lt;iostream&gt; using namespace std; int main() { int Fx=4, Fy=5, x, y, m; cin&gt;&gt;x; cin&gt;&gt;y; for(x=0; x&lt;7; x++) ...

Где ошибка? - C++
Ошибка в правильности построения класса: STRUCT.cpp #include &quot;struct.h&quot; #include &lt;iostream.h&gt; #include &lt;stdio.h&gt; #include...

Где ошибка? - C++
Программа моделирования работы банкомата (пример из книги, почему-то есть ошибка), если надо могу страницы из книги выложить чтобы сверить ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
13052 / 7315 / 814
Регистрация: 27.09.2012
Сообщений: 18,052
Записей в блоге: 3
Завершенные тесты: 1
25.01.2013, 01:17     Не запускается деконструктор. Где ошибка? #2
С чего Вы взяли, что он не "запускается"?
bohdan_si
12 / 12 / 2
Регистрация: 03.10.2012
Сообщений: 83
25.01.2013, 01:18  [ТС]     Не запускается деконструктор. Где ошибка? #3
у меня не выводит максимальное значение!
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
25.01.2013, 01:19     Не запускается деконструктор. Где ошибка? #4
Все вроде вызывается. Только вот в конструкторе переменной max присваивается значение x[0], которое еще не инициализировано (содержит мусор).
Croessmah
Модератор
Эксперт CЭксперт С++
13052 / 7315 / 814
Регистрация: 27.09.2012
Сообщений: 18,052
Записей в блоге: 3
Завершенные тесты: 1
25.01.2013, 01:19     Не запускается деконструктор. Где ошибка? #5
Цитата Сообщение от bohdan_si Посмотреть сообщение
у меня не выводит максимальное значение!
Он будет вызван при выходе из функции, то есть при return;
Можете ограничить область видимости переменной a, чтобы увидеть результат:
C++
1
2
3
4
5
6
int main(){
    
    {Sort a;}
    system("PAUSE");
    return 0;
}
MrGluck
Модератор
Эксперт CЭксперт С++
7163 / 4329 / 632
Регистрация: 29.11.2010
Сообщений: 11,751
25.01.2013, 01:19     Не запускается деконструктор. Где ошибка? #6
bohdan_si, наверное оно выводит мусор, т.к. в момент
C++
1
max=x[0];
в x[0] может лежать что угодно.
Организация класса у вас ужас, ввод в конструкторе вообще не айс.
bohdan_si
12 / 12 / 2
Регистрация: 03.10.2012
Сообщений: 83
25.01.2013, 01:20  [ТС]     Не запускается деконструктор. Где ошибка? #7
можно так прописать?
Цитата Сообщение от bohdan_si Посмотреть сообщение
int i;
C++
1
2
3
4
5
6
7
x[10]={0};
 max=x[0];
for(i=0;i<10;i++){
cin >> x[i];
 if(max<x[i])
max=x[i];
}
Croessmah
Модератор
Эксперт CЭксперт С++
13052 / 7315 / 814
Регистрация: 27.09.2012
Сообщений: 18,052
Записей в блоге: 3
Завершенные тесты: 1
25.01.2013, 01:24     Не запускается деконструктор. Где ошибка? #8
C++
1
2
3
4
5
6
7
8
9
10
Sort::Sort(){
            int i;
                std::cin>>x[0];
            max=x[0];
            for(i=1;i<10;i++){
            cin >> x[i];
            if(max<x[i])
               max=x[i];
                }
}
bohdan_si
12 / 12 / 2
Регистрация: 03.10.2012
Сообщений: 83
25.01.2013, 01:27  [ТС]     Не запускается деконструктор. Где ошибка? #9
Цитата Сообщение от Croessmah Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
Sort::Sort(){
            int i;
                std::cin>>x[0];
            max=x[0];
            for(i=1;i<10;i++){
            cin >> x[i];
            if(max<x[i])
               max=x[i];
                }
}
спасибо!
а для чего std:: ???
Croessmah
Модератор
Эксперт CЭксперт С++
13052 / 7315 / 814
Регистрация: 27.09.2012
Сообщений: 18,052
Записей в блоге: 3
Завершенные тесты: 1
25.01.2013, 01:31     Не запускается деконструктор. Где ошибка? #10
Цитата Сообщение от bohdan_si Посмотреть сообщение
спасибо!
а для чего std:: ???
пространство имен std.
Но если уж решили использовать
C++
1
using namespace std;
то уберите std::
Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
25.01.2013, 02:16     Не запускается деконструктор. Где ошибка? #11
Если так хочешь увидеть работу деструктора то создавай объект динамически или заключи его в функцию например, те
C++
1
2
3
4
5
6
7
8
9
10
11
void test()
{
   Sort a;
}
 
int main(){
    
    test();
    system("PAUSE");
    return 0;
}
В этом случае объект создаётся в функции и там же в конце уничтожается так что и вывод деструктора ты увидишь.
Croessmah
25.01.2013, 02:58
  #12

Не по теме:

Цитата Сообщение от Gepar Посмотреть сообщение
В этом случае объект создаётся в функции и там же в конце уничтожается так что и вывод деструктора ты увидишь.
C++
1
{Sort a;}//Тоже вариант

go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
25.01.2013, 13:16     Не запускается деконструктор. Где ошибка? #13
Цитата Сообщение от bohdan_si Посмотреть сообщение
Не запускается деконструктор. Где ошыбка?
Деструктор не запуститься если только убить процесс.
Croessmah
Модератор
Эксперт CЭксперт С++
13052 / 7315 / 814
Регистрация: 27.09.2012
Сообщений: 18,052
Записей в блоге: 3
Завершенные тесты: 1
25.01.2013, 16:28     Не запускается деконструктор. Где ошибка? #14
Цитата Сообщение от go Посмотреть сообщение
Деструктор не запуститься если только убить процесс.
А так же, если объект не достроен. Как пример:
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
#include <iostream>
class A{
public:
    A(){
        std::cout<<"\tConstructor begin"<<std::endl;
        int * p = new int[1000];
        while (p) p=new int[100000];
        std::cout<<"\tConstructor end"<<std::endl;
    }
    ~A(){
        std::cout<<"\tDestructor"<<std::endl;
    }
};
 
void foo(){
    try{
        A a;
    }catch(...){
        std::cout<<"Error"<<std::endl;
    }
}
 
int main(){
    foo();
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2013, 18:57     Не запускается деконструктор. Где ошибка?
Еще ссылки по теме:

Где ошибка? - C++
Пишу всё по книге Джесса Либерти &quot;Освой самостоятельно C++ за 21 день&quot; В книге указана следующая програмка. int #include...

Где ошибка? - C++
Добрый день! Подскажите пожалуйста как риолизовать Функцию ln x (x+1)–1 в программе : #include &lt;iostream&gt; #include &lt;math.h&gt; using...

Где ошибка? - C++
Программа должна считать массивы с клавиатуры и выполнять над ими действия, пока мы не поставим знак равенства. В результате должна вывести...

где ошибка? - C++
заранее спасибо) надо найти ошибку int x = 0; while (x) { ++x; cout &lt;&lt; x &lt;&lt; endl; }

где ошибка - C++
у меня такая программа для создание матриц. но условие if(j==i-1) {} не выполняется. не знаю почему. помогите разобраться #include...


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

Или воспользуйтесь поиском по форуму:
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
25.01.2013, 18:57     Не запускается деконструктор. Где ошибка? #15
Croessmah, исключения в конструкторе. Ну-ну... Удачи Вам с ними!
Yandex
Объявления
25.01.2013, 18:57     Не запускается деконструктор. Где ошибка?
Ответ Создать тему
Опции темы

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