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

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

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

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

25.01.2013, 01:12. Просмотров 514. Ответов 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;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2013, 01:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не запускается деконструктор. Где ошибка? (C++):

Вывести на экран количество слов где первая и последняя буквы одинаковы (не понимаю где ошибка) - C++
задан текст нужно вывести на экран количество слов где первая и последняя буквы одинаковы #include &lt;iostream&gt; #include &lt;conio.h&gt; ...

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

Укажите где ошибка (ошибка во время выполнения программы) - C++
Здравствуйте, помогите пожалуйста найти ошибки в коде которые возникаю при выполнении программы Картинка с ошибкой внизу поста. Код: ...

Ошибка при компиляции. Где ошибка? (Работа с классом) - C++
Уважаемые форумчане! При компиляции проекта возникает ошибка &quot; undefined reference to `MeterNZiF::MeterNZiF()' &quot; на 7 строку приложения. ...

не запускается программа,в чем ошибка - 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++
#include &lt;iostream&gt; #include &lt;Windows.h&gt; using namespace std; class CMyString{ char *pStr; public: ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Croessmah
Эксперт CЭксперт С++
13231 / 7503 / 846
Регистрация: 27.09.2012
Сообщений: 18,428
Записей в блоге: 3
Завершенные тесты: 1
25.01.2013, 01:17 #2
С чего Вы взяли, что он не "запускается"?
1
bohdan_si
12 / 12 / 2
Регистрация: 03.10.2012
Сообщений: 83
25.01.2013, 01:18  [ТС] #3
у меня не выводит максимальное значение!
0
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
25.01.2013, 01:19 #4
Все вроде вызывается. Только вот в конструкторе переменной max присваивается значение x[0], которое еще не инициализировано (содержит мусор).
1
Croessmah
Эксперт CЭксперт С++
13231 / 7503 / 846
Регистрация: 27.09.2012
Сообщений: 18,428
Записей в блоге: 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;
}
1
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,929
25.01.2013, 01:19 #6
bohdan_si, наверное оно выводит мусор, т.к. в момент
C++
1
max=x[0];
в x[0] может лежать что угодно.
Организация класса у вас ужас, ввод в конструкторе вообще не айс.
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];
}
0
Croessmah
Эксперт CЭксперт С++
13231 / 7503 / 846
Регистрация: 27.09.2012
Сообщений: 18,428
Записей в блоге: 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];
                }
}
1
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:: ???
0
Croessmah
Эксперт CЭксперт С++
13231 / 7503 / 846
Регистрация: 27.09.2012
Сообщений: 18,428
Записей в блоге: 3
Завершенные тесты: 1
25.01.2013, 01:31 #10
Цитата Сообщение от bohdan_si Посмотреть сообщение
спасибо!
а для чего std:: ???
пространство имен std.
Но если уж решили использовать
C++
1
using namespace std;
то уберите std::
1
Gepar
1177 / 533 / 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;
}
В этом случае объект создаётся в функции и там же в конце уничтожается так что и вывод деструктора ты увидишь.
0
Croessmah
25.01.2013, 02:58
  #12

Не по теме:

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

0
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
25.01.2013, 13:16 #13
Цитата Сообщение от bohdan_si Посмотреть сообщение
Не запускается деконструктор. Где ошыбка?
Деструктор не запуститься если только убить процесс.
0
Croessmah
Эксперт CЭксперт С++
13231 / 7503 / 846
Регистрация: 27.09.2012
Сообщений: 18,428
Записей в блоге: 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;
}
0
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
25.01.2013, 18:57 #15
Croessmah, исключения в конструкторе. Ну-ну... Удачи Вам с ними!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2013, 18:57
Привет! Вот еще темы с ответами:

Препод говорит где - то ошибка в синтаксисе. Сам код взят из "жефри Рихтер - Создание эффективных WIN32 приложений" Пожалуйста, подскажите где ошибка! - C++ WinAPI
// получаем код ошибки DWORD dwError = GetDlgItemInt(hwnd, IDC_ERRORCODE, NULL, FALSE); HLOCAL hlocal = NULL; // буфер для строки с...

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

Проект не запускается. Где искать ошибку? - Java SE
Томкат выдает следующую страницу ошибки. Уже очень долго не могу понять в чем причина. Помогите, где искать проблему.HTTP Status 500 -...

Где то есть ошибка, а вот где она? - C#
Есть такой код, замудрённый конечно, но, как умею уж: private void button4_Click(object sender, EventArgs e) { ...


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

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

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