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

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

Войти
Регистрация
Восстановить пароль
 
 
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
#1

Деструктор (программа, которая ищет минимальный элемент массива) - C++

24.12.2012, 16:07. Просмотров 726. Ответов 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
31
32
33
34
35
36
37
38
39
#include <iostream.h>
#include <conio.h>
 
const int n=10;
 
class Class{
      int num[n];
      
public:
       void cou_t();
       void min();
       Class();
       //~Class();
       };
Class::Class(){
       for(int i=0;i<n;i++)
        num[i]=rand()%10+1;
        }
void Class::cou_t()
{
     for(int i=0;i<n;i++)
        cout<<num[i]<<" ";
 }
void Class::min()
{
     int m=num[0];
     for(int i=0;i<n;i++)
        if(num[i]<m) m=num[i];
     cout<<"\nMin element is "<<m;
 }
int main()
{
    srand(time(0));
    Class obj;
    obj.cou_t();
    obj.min();
    getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2012, 16:07     Деструктор (программа, которая ищет минимальный элемент массива)
Посмотрите здесь:

Напишите программу, которая ищет элемент массива и выводит на экран его номер - C++
Напишите программу, которая ищет элемент массива и выводит на экран его номер.

функция, которая определяет минимальный элемент массива - C++
Напишите функцию, которая определяет минимальный элемент массива (его значение и номер). Внутри функции запрещено использовать команды cin...

Написать функцию, которая находит минимальный элемент одномерного массива - C++
Написать функцию, которая находит минимальный элемент одномерного массива.

Не работает программа которая находит минимальный элемент в одномерном массиве из 10 элементов, заполненном случайными числами от 1 до 30 - C++
Всем привет! Начал работать с массивами и столкнулся с такой проблемой вроде все правильно но прога не работает пишет что ошибка и...

Программа вычисляет минимальный по модулю элемент массива - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; using namespace std; int main(int argc, char *argv) { const int n...

Написать программу, содержащую функцию, которая возвращает минимальный элемент переданного ей массива - C++
3. Написать программу, содержащую функцию, которая возвращает минимальный элемент переданного ей массива, если все элементы массива...

Написать программу, которая выводит минимальный элемент введенного с клавиатуры массива целых чисел - C++
вот есть задача.... Написать профамму, которая выводит минимальный элемент введенного с клавиатуры массива целых чисел. Ниже приведен ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
24.12.2012, 16:32     Деструктор (программа, которая ищет минимальный элемент массива) #2
tokar2, зачем в вашем классе деструктор, если у вас массив не динамический?
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 543
24.12.2012, 16:33     Деструктор (программа, которая ищет минимальный элемент массива) #3
деструктор не обязателен.
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
24.12.2012, 16:34     Деструктор (программа, которая ищет минимальный элемент массива) #4
Ничего (серьёзно).
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
24.12.2012, 16:39  [ТС]     Деструктор (программа, которая ищет минимальный элемент массива) #5
Помогите переделать мне эту программу чтобы в ней использовался деструктор! Я только начал учить классы и еще не до конца понимаю зачем он и какие операторы в нем можно записывать.
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 543
24.12.2012, 16:44     Деструктор (программа, которая ищет минимальный элемент массива) #6
C++
1
2
3
4
5
6
int *num = new int[n];
 
~Class()
{
    delete [] num
}
Avazart
Эксперт С++
7122 / 5299 / 273
Регистрация: 10.12.2010
Сообщений: 23,454
Записей в блоге: 17
24.12.2012, 16:45     Деструктор (программа, которая ищет минимальный элемент массива) #7
Цитата Сообщение от tokar2 Посмотреть сообщение
то в данном случае нужно написать чтобы разрушить объект?
Ничего ...
C++
1
Class::~Class(){ /* пусто*/ };
Но в данном случае можно его не писать(он создается по умолчанию), разве что только для того что бы сделать его виртуальным для дальнейшего наследования
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
24.12.2012, 16:50  [ТС]     Деструктор (программа, которая ищет минимальный элемент массива) #8
Почему такая ошибка?
`new' cannot appear in a constant-expression
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
33
34
35
36
37
38
39
40
41
42
#include <iostream.h>
#include <conio.h>
 
const int n=10;
 
class Class{
      int* num=new int[n];
      
public:
       void cou_t();
       void min();
       Class();
       ~Class();
       };
Class::Class(){
       for(int i=0;i<n;i++)
        num[i]=rand()%10+1;
        }
void Class::cou_t()
{
     for(int i=0;i<n;i++)
        cout<<num[i]<<" ";
 }
void Class::min()
{
     int m=num[0];
     for(int i=0;i<n;i++)
        if(num[i]<m) m=num[i];
     cout<<"\nMin element is "<<m;
 }
Class::~Class(){
       delete [] num;
        }
int main()
{
    srand(time(0));
    Class obj;
    obj.cou_t();
    obj.min();
    getch();
    return 0;
}
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 543
24.12.2012, 16:53     Деструктор (программа, которая ищет минимальный элемент массива) #9
засунь присвоение в конструктор.
C++
1
2
3
4
5
6
Class::Class()
{
       num = new int[n];
       for(int i=0;i<n;i++)
        num[i]=rand()%10+1;
        }
zss
Модератор
Эксперт С++
6322 / 5906 / 1913
Регистрация: 18.12.2011
Сообщений: 15,189
Завершенные тесты: 1
24.12.2012, 17:00     Деструктор (программа, которая ищет минимальный элемент массива) #10
Уж коли начали создавать класс, то какого ... n объявлена глобально.
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream.h>
#include <conio.h>
class Class
{
private:
      int n;
      int* num;
      
public:
       void cou_t();
       void min();
       Class(int size);
       ~Class();
       };
Class::Class(int size=0)
{
       n=size;
       num=new int[n];
       for(int i=0;i<n;i++)
        num[i]=rand()%10+1;
}
void Class::cou_t()
{
     for(int i=0;i<n;i++)
        cout<<num[i]<<" ";
 }
void Class::min()
{
     int m=num[0];
     for(int i=0;i<n;i++)
        if(num[i]<m) m=num[i];
     cout<<"\nMin element is "<<m;
 }
Class::~Class(){
       delete [] num;
        }
int main()
{
    srand(time(0));
    int m;
    cout<< "enter array size:";
    cin>>m;
    Class obj(m);;
    obj.cou_t();
    obj.min();
    getch();
    return 0;
}
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
24.12.2012, 17:09  [ТС]     Деструктор (программа, которая ищет минимальный элемент массива) #11
Вы бы не могли объяснить как здесь определяется размер массива! Ну то что пользователь вводит я понял, а что дальше? Передается в конструктор и присваивается 0, и я что-то этого не понимаю ..
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 543
24.12.2012, 17:13     Деструктор (программа, которая ищет минимальный элемент массива) #12
Почему ноль присваивается? Присваивается переданное как аргумент значение. а вот если аргумент не передан, то присваивается ноль. Дальше формируется массив.

Добавлено через 1 минуту
При
C++
1
2
3
4
5
6
7
Class::Class(int size=0)
{
       n=size;
       num=new int[n];
       for(int i=0;i<n;i++)
        num[i]=rand()%10+1;
}
в main можно вызывать как так:
C++
1
Class arr; // при этом размер будет равен нулю.
Так и
C++
1
Class arr(10); // а тут размер будет равен переданному числу, т.е. десяти
silent_1991
Эксперт С++
4961 / 3037 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
29.12.2012, 07:43     Деструктор (программа, которая ищет минимальный элемент массива) #13
Цитата Сообщение от tokar2 Посмотреть сообщение
Что в данном случае нужно написать чтобы разрушить объект?
Деструктор, строго говоря, не разрушает сам объект. Он только вызывается перед реальным разрушением и освобождает ресурсы, захваченные объектом, чтобы ничего не "утекло". Если освобождать нечего - соответственно и деструктор писать не надо. Если вы его не напишете, компилятор сгенерирует его автоматически, и он не будет выполнять никакой работы (будет иметь пустое тело) и нужен будет только затем, чтобы компилятору было что вызвать перед разрушением объекта.
Croessmah
29.12.2012, 20:26
  #14

Не по теме:

Цитата Сообщение от silent_1991 Посмотреть сообщение
Если освобождать нечего - соответственно и деструктор писать не надо.
А если есть счетчик объектов?

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2012, 21:46     Деструктор (программа, которая ищет минимальный элемент массива)
Еще ссылки по теме:

Написать программу, которая выводит на экран значение минимального элемента массива из 100 элементов. Вывести минимальный элемент - C++
Написать программу, которая выводит на экран значение минимального элемента массива из 100 элементов. Массив заполняется случайными числами...

программа, которая бы вычисляла среднее значение, максимальный и минимальный элемент второй колонки Excel и выводила это значение на экран - C++
Тема: «Чтение и обработка табличных данных с использованием языка C++» Цель: Научиться сохранять таблицы с помощью MS Excel в формате CSV...

Программа которая ищет самое короткое слово - C++
Добрый день, мне (опять) нужна ваша помощь, искал на сайте подобное, но увы не нашел. Так вот, нужно написать программу которая ищет...

Не найду ошибку (функция, которая ищет максимальный элемент, который встречается больше 1 раза) - C++
int app_2(int **matr, int n, int m) { int first=matr; int end=matr; for(int i=0; i &lt; n;i++) for(int j=0; j &lt; m ;j++) ...

Минимальный элемент одномерного массива A заменить на третий отрицательный элемент - C++
Минимальный элемент одномерного массива A заменить на третий отрицательный элемент. Третий отрицательный искать от минимального элемента.


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

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт С++
4961 / 3037 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
29.12.2012, 21:46     Деструктор (программа, которая ищет минимальный элемент массива) #15
Croessmah, "ресурс" - понятие абстрактное. "Освободить ресурс" - произвести некую финализацию. А под понятие "финализация" подпадают любые действия, которые должны быть выполнены при разрушении объекта.
Yandex
Объявления
29.12.2012, 21:46     Деструктор (программа, которая ищет минимальный элемент массива)
Ответ Создать тему
Опции темы

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