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

Классы, конструктор, сложение двух матриц - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
Alukar
0 / 0 / 0
Регистрация: 12.09.2010
Сообщений: 6
12.09.2010, 16:18     Классы, конструктор, сложение двух матриц #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
#include "stdafx.h"
#include "iostream"
using namespace std;
 
 
class Matrix
{
private:
        int **m1;
        int **m2;
        int **s1;
        int a;
        int b;
public:
 
Matrix(int, int);
~Matrix ();
 
void vvod();
void vivod();
int sum();
};
 
Matrix::Matrix(int a, int b)
{
m1=new int*[a];
for (int i=0;i<a;i++)
m1[a]=new int[b];
 
m2=new int*[a];
for (int i=0;i<a;i++)
m2[a]=new int[b];
 
}
 
void Matrix::vvod()
{
    cout<<"1st matrix"<<endl;
    for (int i=0;i<a;i++)
        for(int j=0;j<b;j++)
        cin>>m1[i][j];
 
    cout<<"2nd matrix"<<endl;
    for (int i=0;i<a;i++)
        for(int j=0;j<b;j++)
        cin>>m2[i][j];
}
 
void Matrix::vivod()
{
    for (int i=0;i<a;i++)
        for(int j=0;j<b;j++)
            cout<<s1[i][j]<<" ";
}
 
int Matrix::sum()
{
for (int i=0;i<a;i++)
        for(int j=0;j<b;j++)
            s1[i][j]=m1[i][j]+m2[i][j];
return **s1;
}
 
Matrix::~Matrix()
{
    for (int i=0;i<a;i++)
            delete[] m1[i];
            delete[] m1;
}
 
int main()
{
int rows;
int coll;
cout<<"Input rows"<<endl;
cin>>rows;
cout<<"Input coll"<<endl;
cin>>coll;
Matrix object(rows, coll);
cout<<"input maatrixs"<<endl;
object.vvod();
cout<<"sum"<<endl;
object.sum();
object.vivod();
}
Вроде нету ошибок компиляции, но функции не выполняются... подскажите где ошибка, я новичок =(
писалось на visual studio 2008.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.09.2010, 16:18     Классы, конструктор, сложение двух матриц
Посмотрите здесь:

Сложение двух матриц C++
Написать функцию, вычисляющую произведение двух матриц C++
C++ Сложение двух матриц
C++ Сложение двух матриц
Сложение матриц(классы) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Andrew_Lvov
Эксперт C++
 Аватар для Andrew_Lvov
259 / 189 / 5
Регистрация: 19.08.2010
Сообщений: 758
Записей в блоге: 1
12.09.2010, 16:24     Классы, конструктор, сложение двух матриц #2
Какая именно ф-ция не выполняется ?
Alukar
0 / 0 / 0
Регистрация: 12.09.2010
Сообщений: 6
12.09.2010, 18:19  [ТС]     Классы, конструктор, сложение двух матриц #3
из мейна выводит только cout'ы... и всё.
Andrew_Lvov
Эксперт C++
 Аватар для Andrew_Lvov
259 / 189 / 5
Регистрация: 19.08.2010
Сообщений: 758
Записей в блоге: 1
12.09.2010, 18:47     Классы, конструктор, сложение двух матриц #4
Не обьявляй локальные переменные в двух местах одинаковыми именами, если области их видимости могут пересекаться.
В конструкторе, какая a будет использована? Из аргументов или из класса ?
Второе - ты не инициализируешь переменные класса, содержащие размер (сейчас a,b).
3. Ряд 29: m1[a] -> m1[i].
Ряд 33 - тоже самое.
4. Все функции, определяющие тип возвращаемого значения, отличный от void, должны иметь инструкции return на всех контрольных путях выхода из ф-ции. В данном случае речь идёт о ф-ции main().
Yandex
Объявления
12.09.2010, 18:47     Классы, конструктор, сложение двух матриц
Ответ Создать тему
Опции темы

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