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

Ругается на деструктор (выделял динамически память). Почему? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Задача с массивом (найти максимальный парный элемент в каждой строке массива) http://www.cyberforum.ru/cpp-beginners/thread833131.html
Здравствуйте! Я новичок в с++, помогите разобраться с такой задачей: нужно найти максимальный парный элемент в каждой строке массива A (n, n). Не пойму , как это можно организовать ? Как делать проход по каждой строке массива отдельно? Помогите , пожалуйста , кто может . Заранее огромное Вам спасибо!
C++ Сумма дробей Создать класс RatNum, который имеет два поля int — числитель и знаменатель. Создать конструктор класса и методы которые будут инициализировать объекты класса, складывать и вычитать дроби, выводить на экран результат в виде a/b. Вот то что я смог написать: #include <iostream> #include <conio.h> using namespace std; class RatNum { private: int nom, den; http://www.cyberforum.ru/cpp-beginners/thread833119.html
C++ Задано множество вычислительных машин
Задано множество вычислительных машин. Известен набор машин, имеющихся в каждом из 10 техникумов города. Построить и вывести множества , включающие в себя вычислительные машины, которых нет ни в одном техникуме.
C++ Определить число членов ряда
Определить число членов ряда, необходимых для расчета с заданной погрешностью суммы членов ряда: 1+1/1! + 1/2! + 1/3! + ...; 1/N! ; S= е;N= 0,1,2,...
C++ Сортировать отчеты по фамилиям студентов http://www.cyberforum.ru/cpp-beginners/thread833102.html
задача: Составить программу, которая формирует массив структур и обрабатывает его согласно соответствующего условия. само задание: Данная последовательность 16 отчетов о сдаче студентами экзаменов. Каждый отчет содержит фамилию студента и оценки по 5 предметам. Найти последовательность студентов, которые являются: а) отличниками;...
C++ дана целочисленная матрица A(n,m). Заменить нулями элементы матрицы, стоящие на пересечение строк и столбцов, в которых имеются хотя бы по одному нулю дана целочисленная матрица A(n,m).Заменить нулями элементы матрицы, стоящие на пересечение строк и столбцов, в которых имеются хотя бы по одному нулю подробнее

Показать сообщение отдельно
Gudsaf
103 / 14 / 3
Регистрация: 29.11.2010
Сообщений: 325
09.04.2013, 22:52     Ругается на деструктор (выделял динамически память). Почему?
Вот код:
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
 
class MClass
{
private:
    int *arr;
    int NumOfElmts;
 
public:
    MClass()
    {
        arr = new int[0];
    }
 
    MClass(int num)
    {
        if (num <= 0)
        {
            printf("Wrong size!\nClosing programm...\n");
            exit(0);
        }
        NumOfElmts = num;
        arr = new int[NumOfElmts];
        for (int i = 0; i < NumOfElmts; ++i)
        {
            arr[i] = rand() % 300;
        }
    }
 
    ~MClass()
    {
        delete arr;
    }
    /*************************************************************************/
    int & operator [] (int i)
    {
        if (i < 0 || i >= NumOfElmts)
            exit(0);
        return arr[i];
    }
 
     MClass & operator ++ (int n)
    {
        //int c = n;
        //MClass *temp = new MClass(NumOfElmts);
        for (int i = 0; i < NumOfElmts; ++i)
        {
            printf("\nelement %d: %d", i + 1, this->arr[i]);
            this->arr[i]++;
            printf("\nelement++ %d: %d\n", i + 1, this->arr[i]);
        }
        return *this;
    }
    /*************************************************************************/
    void print_result(void)
    {
        printf("\n\noutput: ");
        for (int i = 0; i < NumOfElmts; ++i)
        {
            printf("%d ", arr[i]);
        }
        printf("\n");
    }
 
    void  get_element (int num_el)
    {
        printf("value: %d", this->arr[num_el]);
    }
};
 
int get_number2 (void)
{
    int number = 0;
    printf("input number of elements for output: ");
    scanf("%d", &number);
    return (number-1);
}
 
int get_number(void)
{
    int number = 0;
    printf("input number of elements: ");
    scanf("%d", &number);
    return number;
}
 
int main(void)
{
    srand(time(NULL));
 
    MClass arr_1(get_number());
    arr_1 = arr_1++;
    arr_1.print_result();
    arr_1.get_element(get_number2());
 
    getch();
    arr_1.~MClass();
    return 0;
}
вылетает на строке: arr_1.~MClass();
Сидим с другом не можем понять что не так.... Объясните, кто может) будем благодарны.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru