Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: Roma   (29.02.2008 в 05:32)
всем привет!!!
в чем ошибка при сложении матриц?

#include <stdio.h>
#include<iostream.h>
class Tmatr{
      private:int cols,rows,**matr;
      public:        
        Tmatr(int rows,int cols);
        ~Tmatr(){for(int i=0;i<rows;i++)delete[] matr[i];delete[] matr;}
        void out();     
        Tmatr operator+(Tmatr &rhs);
        void operator=(Tmatr &hs1);
};
Tmatr::Tmatr(int rows,int cols){
      this->cols=cols;
      this->rows=rows;
      matr=new int*[rows];
      for(int i=0;i<rows;i++){
          matr[i] = new int[cols];
          for(int j = 0;j < cols;j++)matr[i][j]=i+j;
      }
}
void Tmatr::out(){
     for(int i=0;i<this->rows;i++){
       for(int j = 0;j < this->cols;j++) cout<<matr[i][j]<<" ";
       cout<<endl;
     }
}
void Tmatr::operator=(Tmatr &rhs1){
      for(int i=0;i<rows;i++)
        for(int j=0;j<cols;j++){
           matr[i][j]=rhs1.matr[i][j];
        }
}

Tmatr Tmatr::operator+(Tmatr &rhs){
     Tmatr c(this->rows,this->cols);
      for(int i=0;i<rows;i++)
      for(int j=0;j<cols;j++)
           c.matr[i][j]= matr[i][j]+rhs.matr[i][j];
      return  c;
}
void main()
{
    Tmatr a(5,5);
    Tmatr b(5,5);
    Tmatr d(5,5);
     d=a+b;
    d.out();
}



Проблема в реализации operator+!!! что я сделал не так?
Заранее спасибо


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: