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

деструктор - C++

Восстановить пароль Регистрация
 
spl4sh
0 / 0 / 0
Регистрация: 26.12.2009
Сообщений: 3
26.12.2009, 21:23     деструктор #1
опять же проблема с лабой. помоги дописать деструктор.

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
103
104
105
106
107
108
109
110
#include "stdafx.h"
#include <string>
#include <iostream>
 
using namespace std;
 
class MatrixBuilder {
public:
    enum {nmax = 100};
    double m_[nmax][nmax];
 
    int n_;
 
    //конструктор
    MatrixBuilder();
 
    bool Scan();
 
    void Print() const;
 
    void FindMaxMinInCol() const;
     
};
 
//==================================================================================
 
MatrixBuilder::MatrixBuilder()
{
    //инициализация в конструкторе
    if (!Scan())
        throw "MatrixBuilder construktor failed";
}
 
//----------------------------------------------------------------------------------
 
bool
MatrixBuilder::Scan()
{
    cout << "Enter matrix size\n";
    cin >> n_;
 
    if (n_ <= 0 || nmax < n_) {
        cout << "Matrix size must be in [0, " << nmax << "]\n";
        return 0;
    }
 
    for (int i = 0; i < n_; i++) {
        for (int j = 0; j < n_; j++) {
            cout << "\nEnter m_[" << i << "][" << j <<"]:\t";
            cin >> m_[i][j];
        }
    }
 
    return 1;
}
 
//----------------------------------------------------------------------------------
 
void
MatrixBuilder::Print() const
{
    cout << "\n";
    for (int i = 0; i < n_; i++) {
        for (int j = 0; j < n_; j++) {
            cout << m_[i][j] << "\t";
        }
 
        cout << "\n";
    }
}
 
//----------------------------------------------------------------------------------
 
void
MatrixBuilder::FindMaxMinInCol() const
{
    double colMin;
    double colMax;
 
    for (int j = 0; j < n_; j++) {
        for (int i = 0; i < n_; i++) {
            if (!i)
                colMin = colMax = m_[i][j];
            else {
                colMin = min(colMin, m_[i][j]);
                colMax = max(colMax, m_[i][j]);
            }
        }
 
        cout << "Min element in col " << j << " = " << colMin << "\n";
        cout << "Max element in col " << j << " = " << colMax << "\n\n";
    }
}
 
//==================================================================================
 
int main()
{
    try {
        //в конструкторе вызывается метод Scan() поэтому
        //при вводе некорректных данных килается исключение
        MatrixBuilder mb;
 
        mb.Print();
        mb.FindMaxMinInCol();
    } catch (...) {
        //обрабатывать ничего не надо, т.к. сообщения уже выданы на экран
    }
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2009, 21:23     деструктор
Посмотрите здесь:

Деструктор C++
Деструктор C++
C++ деструктор
Деструктор C++
C++ Деструктор
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
26.12.2009, 21:26     деструктор #2
1. Используй теги для выделения кода.
2. Зачем здесь деструктор? В данном случае он ни к чему.
spl4sh
0 / 0 / 0
Регистрация: 26.12.2009
Сообщений: 3
26.12.2009, 21:40  [ТС]     деструктор #3
1. учту)
2. задание такое в лабе
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
26.12.2009, 21:43     деструктор #4
Цитата Сообщение от spl4sh Посмотреть сообщение
задание такое в лабе
Деструктор необходим, когда нужно провести некую очистку при удалении элемента, например, освобождение ресурсов.
Здесь он будет пустым, потому что нечего очищать.
C++
1
2
3
MatrixBuilder::~MatrixBuilder()
{
}
Yandex
Объявления
26.12.2009, 21:43     деструктор
Ответ Создать тему
Опции темы

Текущее время: 04:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru