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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Стек на основе статического массива http://www.cyberforum.ru/cpp-beginners/thread700849.html
Здравствуйте! Помогите пожалуйста выполнить задание. Сама уже весь форум облазила и нужного не нашла. Создать стек записи Учитель на основе статического массива типа запись. Реализовать методы : Добавить элемент, удалить элемент, вершина стека.
C++ Как лучше организовать данные Добрый день. Создаю класс CError для хранения в нём ошибок. От класса требуется хранить информацию о всех возникающих в процессе работы программы ошибках. Т.е. в функции возникла некритическая ошибка, вместо вывода её прям на месте, мы сохраняем её например таким образом: err.Set("Имя функции", REP_ERR_NO_DATA_IN_AE_MODEL, 1); В подробности вдаваться не будем. Загвоздка возникла в вопросе о... http://www.cyberforum.ru/cpp-beginners/thread700847.html
C++ вот мое задание. Можете с ним помо*ь? Очень надо
В целочисленном массиве, сгенерированном случайным образом, найти наименьший из положительных элементов.
C++ Что означает "Программа "[4872] laba!.exe: Машинный код" завершилась с кодом 3 (0x3)."?
при запуске кода компилятор пишет "Программа " laba!!!!!!.exe: Машинный код" завершилась с кодом 3 (0x3)." и появляется окошечко с ошибкой. что это означает и как с этим бороться?
C++ Определить среднее геометрическое отрицательных элементов http://www.cyberforum.ru/cpp-beginners/thread700830.html
Изначально задание такое было: В массиве В, содержащем 16 элементов(заданных в ручную), определить среднее геометрическое отрицательных элементов, расположенных между минимальным и максимальным элементами данного массива. ____ но, думаю, если среднее геометрическое не получится найти, то можно и ср. арифметическое. ___ У меня получается только найти max и min массива, а потом начинается...
C++ Дана строка S и натуральное число N. Создать новую строку, включив в нее все слова из N букв исходной строки Дана строка S и натуральное число N. Cформировать новую строку, включив в нее все N-буквенные слова исходной строки. Слова в результирующей строке разделять одним пробелом. Знак препинания приравнивать к букве и считать допустимой частью слова. В результирующей строке порядок слов должен быть таким же как в исходной. подробнее

Показать сообщение отдельно
Alex S
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;
}
 
Текущее время: 16:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru