Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 18.11.2012
Сообщений: 5

Знакомство с классами, попытка реализации класса матриц

18.11.2012, 11:36. Показов 1257. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно выдает следующую вещь
"Необработанное исключение в "0x00411805" в "class_test_inheritance.exe": 0xC0000005: Нарушение прав доступа при чтении "0xcccccccc"."
хотелось бы понять почему.
код:

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
#include <iostream>
using namespace std;
 
class Matrix 
{
private:
    int s_columns;
    int s_lines;
    int **matr;
public:
    Matrix(int n, int m);
    ~Matrix();
    //Matrix(Matrix &obj);
    void print();
    void get();
};
 
Matrix::Matrix(int n, int m)
{
    s_lines = n;
    s_columns = m;
    int **matr = new int *[s_lines]; 
    for (int i = 0; i < s_lines; i++) 
        matr[i] = new int [s_columns];
}
 
Matrix::~Matrix()
{
    for (int i = 0; i < s_lines; i++)
        delete [] matr [i];
    delete [] matr;
}
 
void Matrix::print()
{
    for (int i = 0; i < s_lines; i++)
    {
        for (int j = 0; j < s_columns; j++)
            cout << matr [i][j] << " ";
        cout << endl;
    }
}
 
void Matrix::get()
{
    for (int i = 0; i < s_lines; i++)
    {
        for (int j = 0; j < s_columns; j++)
        {
            cin >> matr [i][j];
        }
    } 
    
}
 
int main()
{
    system("cls");
    Matrix A(3,4);
    A.get();
    A.print();
    system("pause");
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.11.2012, 11:36
Ответы с готовыми решениями:

Попытка разобраться с классами в C++
Доброго времени суток Читаю книгу Дейтел С++ дошел до классов и в первом же упражнении впал в ступор Помогите кто чем сможет Текст...

Обмен информацией между классами. Попытка 2
Первая тема превратилась в гору флуда, попробую еще раз. Модераторы, простите за дубль. Вероятно, я плохо объяснил задачу. Есть два...

Ошибки "Expression syntax" и "Unreachable code" при реализации класса матриц
Подскажите по коду. #include &lt;iostream.h&gt; #include &lt;math.h&gt; #include &lt;string.h&gt; #include &lt;stdio.h&gt; #include &lt;windows.h&gt; ...

4
 Аватар для David Sylva
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
18.11.2012, 12:12
22 строка надо
C++
1
matr = new int*[s_lines]
1
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,536
Записей в блоге: 1
18.11.2012, 12:14
конструктор копирования, оператор присвоения
1
0 / 0 / 0
Регистрация: 18.11.2012
Сообщений: 5
18.11.2012, 21:29  [ТС]
Спс, конструктор копирования дописал, вроде работает. С оператором присвоения не совсем разобрался, получился такой вариант но он работает для одинаковых размеров объектов. Если размеры А задать больше В то возникают ошибки.
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 <iostream>
using namespace std;
 
class Matrix 
{
private:
    int s_columns; 
    int s_lines;  
    int **matr; 
public:
    Matrix(int n, int m); 
    ~Matrix(); 
    Matrix(Matrix &obj); 
    Matrix &operator = (const Matrix &obj);
    void print(); 
    void get(); 
};
 
Matrix::Matrix(int n, int m)
{
    s_lines = n;
    s_columns = m;
    
    matr = new int*[s_lines];
    for (int i = 0; i < s_lines; i++) 
        matr[i] = new int [s_columns];
}
 
Matrix::~Matrix()
{
    for (int i = 0; i < s_lines; i++)
        delete [] matr [i];
    delete [] matr;
}
 
void Matrix::print()
{
    for (int i = 0; i < s_lines; i++)
    {
        for (int j = 0; j < s_columns; j++)
            cout << matr [i][j] << " ";
        cout << endl;
    }
}
 
void Matrix::get()
{
    cout << "Please enter the elements of the matrix: "<< endl;;
    for (int i = 0; i < s_lines; i++)
    {
        for (int j = 0; j < s_columns; j++)
        {
            cout << "M["<<i<<"]["<<j<<"] = ";
            cin >> matr [i][j];
        }
    } 
}
 
Matrix::Matrix(Matrix &obj)
{
    s_columns = obj.s_columns;
    s_lines = obj.s_lines;
 
    matr = new int*[s_lines];
    for (int i = 0; i < s_lines; i++) 
        matr[i] = new int [s_columns];
 
    for (int i = 0; i < s_lines; i++)
    {
        for (int j = 0; j < s_columns; j++)
        {
            matr [i][j] = obj.matr[i][j];
        }
    } 
 
}
 
Matrix &Matrix::operator = (const Matrix &obj)
{
    if (this == &obj)
        return *this;
    s_columns = obj.s_columns;
    s_lines = obj.s_lines;
    for (int i = 0; i < s_lines; i++)
    {
        for (int j = 0; j < s_columns; j++)
        {
            matr [i][j] = obj.matr[i][j];
        }
    } 
    return *this;
}
 
int main()
{
    system("cls");
    Matrix A(3,2);
    A.get(); 
    cout << "A:"<< endl;
    A.print();
    Matrix B(2,2); 
    B.get();
    cout << "B:"<< endl;
    B.print();
    B = A;  
    cout << "posle vipolneniya prisvaivaniya, B:"<< endl;
    B.print();
    system("pause");
    return 0;
}
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,536
Записей в блоге: 1
18.11.2012, 21:37
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
Matrix &Matrix::operator = (const Matrix &obj)
{
    if (this == &obj)
        return *this; 
    if ((s_columns != obj.s_columns)||(s_lines != obj.s_lines)){
        for (int i = 0; i < s_lines; i++) 
            delete[] matr[i]
        delete[] matr;
 
        s_columns = obj.s_columns;
        s_lines = obj.s_lines;
 
        matr = new int*[s_lines];
        for (int i = 0; i < s_lines; i++) 
           matr[i] = new int [s_columns];
      }
    for (int i = 0; i < s_lines; i++)
    {
        for (int j = 0; j < s_columns; j++)
        {
            matr [i][j] = obj.matr[i][j];
        }
    } 
    return *this;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.11.2012, 21:37
Помогаю со студенческими работами здесь

Отделение интерфейса от реализации класса: компиляция кода реализации
Доброго времени суток, У меня возникла проблема с отделением интерфейса от реализации класса. Допустим, у меня есть три файла: 1....

Знакомство с наследованием. Вызов конструктора базового класса
В инете немного почиатл про наследование и решил сразу перейти к практике Есть два класа point и apoint вот хидер #ifndef...

попытка работы с методами и классами
есть такой код &lt;?php require_once (&quot;class.trial_one.php&quot;); ?&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;Авторизация&lt;/title&gt; &lt;/head&gt; ...

Попытка реализации конфигурации учета аренды
Всем доброго времени суток! Я только начал изучать 1С, поэтому не обессудьте за, возможно, глупые вопросы. Итак, Компания сдает в...

Реализация работы с классами, конструктор, методы класса и переменные класса
Всем привет, решил изучать Java. Нашел прикольное задание : Реализовать класс, представляющий собой строку фиксированной длины -...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru