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

Класс матриц - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти сумму элементов строки матрицы, в которой расположен элемент с наименьшим значением http://www.cyberforum.ru/cpp-beginners/thread210108.html
ребята очень нужна помощь при выводе матрицы.Кто сможет помоч если сможет.Нада MFC AppWizard.exe проект и вот задание Дана действительная матрица размера m*n. Найти сумму элементов строки, в которой расположен элемент с наименьшим значением. Предполагается, что такой элемент един-ственный. С меня пивко... Добавлено через 5 часов 59 минут откликнетесь кто нибудь))
C++ перевести код с паскаля на С++ Доброго времени суток! у меня большая просьба: имеется код на паскале, программа, которая рисует дерево, из каждой ветки растут новые 2. Помогите пожалйста перевести этот код на С++. Заранее спасибо! Добавлено через 36 секунд Program Tree; Uses Graph, CRT; var D, R, e : Integer; i, j : Word; Ar : array of Real; Ar1 : array of Real; http://www.cyberforum.ru/cpp-beginners/thread210092.html
C++ "Замок" (на перебор с возвратом)
Написать программу, которая определяет: количество комнат в замке; площадь наибольшей комнаты; какую стену в замке следует удалить, чтобы получить комнату наибольшей площади. Замок условно разделен на M*N клеток (М<=50, N<=50). Каждая такая клетка может иметь от 0 до 4 стен.
Модуль расчёта пространственного заряда C++
Модуль расчёта пространственного заряда PIC-методом для ячеек конечно-разностной схемы и CIC-методом для конечно-разностной ячейки Исходные данные: 1) Координаты и размеры ячеек-параллелепипедов. 2) Набор трубок тока в виде последовательностей отрезков прямой с заданными параметрами: – координаты концов отрезков; – распределение заряда на каждом отрезке. парни может ктонибудь...
C++ Надо решить "Дано трехзначное число. Определить входит ли в него цифра 4." http://www.cyberforum.ru/cpp-beginners/thread209921.html
Дано трехзначное число. Определить входит ли в него цифра 4.
C++ Фундоментальные циклы графа Нужна программа на C\C++.по фундоментальным циклам графа,есть прога подобная на паскале но она у меня почемуто не работает...хотя пример взят из книжки где автор утверждает что она работает))) вот она помогите кто чем сможет((( Program GraphCycle; {Фундаментальные циклы графа} uses CRT,DOS; Const nVertex=100; {Максимальное количество вершин} nAdjacent=1000; {Максимальная длина списка... подробнее

Показать сообщение отдельно
Gabberr
 Аватар для Gabberr
101 / 101 / 17
Регистрация: 13.10.2009
Сообщений: 402
13.12.2010, 18:29     Класс матриц
Пытаюсь написать класс матриц.Никак не удаётся перегрузить оператор = .
Выдаёт :
ambiguous overload for 'operator=' in 'k = b'
candidates are: Matrix Matrix::operator=(Matrix)
Matrix& Matrix::operator=(const Matrix&)

Помогите, пожалуйста,разобраться

вот сам класс
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Matrix
{
    private:
            int nstr,nstl;
            int **a;
    public:
            Matrix (int m,int n);  
            Matrix (int m,int n,int *b);       
            ~Matrix ();
            Matrix operator + (Matrix b);
            Matrix operator * (Matrix b);
            Matrix operator * (int c);
            Matrix operator = (Matrix b);
            Matrix operator += (Matrix b);
            Matrix (const Matrix &T);
            Matrix & operator = (const Matrix &);
            void Print ();
};
вот методы

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
#include "Matrix.h"
#include <iostream.h>
#include <iomanip.h>
Matrix::Matrix (int m,int n)
{    
     nstr=m;
     nstl=n; 
     a=new int *[nstr]; 
     for (int j=0;j<nstr;j++)
     {
        a[j]=new int[nstl]; 
        for (int i=0;i<nstl;i++)
           a[j][i]=0;     
     }
}
Matrix::Matrix (int m,int n,int *b)
{
     nstr=m;
     nstl=n; 
     int k=0;
     a=new int *[nstr]; 
     for (int j=0;j<nstr;j++)
     {
        a[j]=new int[nstl]; 
        for (int i=0;i<nstl;i++)
        {
           a[j][i]=b[k];
           k++;
        }       
     }
}           
Matrix::~Matrix()
{
    for (int i=0;i<nstr;i++)
       delete []a;             
}
Matrix::Matrix (const Matrix& T)
{ 
    nstr=T.nstr;
    nstl=T.nstl;           
    for (int i=0;i<T.nstr;i++)
       for (int j=0;j<T.nstl;j++)
          a[i][j]=T.a[i][j];                
}
Matrix & Matrix::operator = (const Matrix & T)
{
   if (this == &T) 
      return *this;
   else
   {
       delete a;
       nstr=T.nstr;
       nstl=T.nstl;
       a=new int *[nstr]; 
     for (int j=0;j<nstr;j++)
     {
        a[j]=new int[nstl]; 
        for (int i=0;i<nstl;i++)
           a[j][i]=T.a[i][j];     
     }
     
     
 
       return *this; 
   }        
}
void Matrix::Print ()
{
    for (int i=0;i<nstr;i++)
    {
       for (int j=0;j<nstl;j++)  
          cout<<setw(3)<<a[i][j];
       cout<<endl;   
    }           
}
и вот main
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <cstdlib>
#include <iostream.h>
#include "Matrix.h"
int main()
{
    int c[10]={1,2,3,4,5,6,7,8,9,10};
    Matrix b(5,2,c),k(5,2);
    k=b;
    k.Print();
    system("PAUSE");
    return 0;
}
ошибка в 8 строке ф-ии main
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru