Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2010, 16:41   #1
ArtGoN
Пользователь
 
Регистрация: 11.05.2010
Сообщений: 11
По умолчанию прегрузка операций класс Матрица

Подскажите как можна реализовать перегрузку операции ++, -- для класса Матрица
ArtGoN вне форума Ответить с цитированием
Старый 15.11.2010, 19:43   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Что вы подразумевваете под этими операциями приминительно к матрице? Постфиксные или префиксные?
p51x вне форума Ответить с цитированием
Старый 15.11.2010, 19:52   #3
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Цитата:
Подскажите как можна реализовать перегрузку операции ++, -- для класса Матрица
Вам нужно подсказать физический смысл этих операций или их синтаксис?
Если физ. смысл, то возможна такая интерпретация: вызов для всех элементов соответствующих операторов; если синтаксис, то:
Код:
const CMatrix CMatrix::operator ++ (void) // Префиксная
{
      // Ваш код, модифицирующий *this
      return *this;
}

const CMatrix CMatrix::operator ++ (int) // Постфиксная
{
      CMatrix matrix = *this;
      // Ваш код, модифицирующий *this
      return matrix;
}
Для декрементации аналогично.
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 15.11.2010, 22:20   #4
ArtGoN
Пользователь
 
Регистрация: 11.05.2010
Сообщений: 11
По умолчанию

Помогите пожалуйста исправить ошибки в перегрузке операции + :

Код:
class Matr{
 public:
  int row,col;
  int **d_ptr;
  int **d_ptt;

   Matr(int n, int m );
   void formuv(int n,int m);
   int get_p(int n, int m);

 };

Matr operator + (Matr v){
	int i,j;
	Matr b;

	for (i=0; i<5; i++)
	for (j=0; j<5; j++)
	{
	  b.d_ptr[i][j]=d_ptr[i][j] + v.d_ptr[i][j];
	}

	return b;
}

//Конструктор с параметрами.
Matr::Matr(int n, int m )
{  row = n;
   col  = m;
  //Выделили память.
  d_ptr = new int *[row];
  for( int i = 0 ; i < row ; i++ )
  d_ptr[i] = new int[col];
  //Заполнилил случайными числами.
   for( int p = 0 ; p < row ; p++ )
	 for( int r = 0 ; r < col ; r++)
	   d_ptr[p][r] = rand()%10;
};

void Matr::formuv(int n,int m)
 {
  int i,j; row=n; col=m;
  for(i=0; i<n; i++)
  for(j=0; j<m; j++)
   d_ptr[i][j]=random(40);
 } ;


int Matr::get_p(int n,int m){
   return d_ptr[n][m];
   };
ArtGoN вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++: класс матрица. Действия с ними MR_Andrew Общие вопросы C/C++ 6 21.07.2015 22:02
Класс «матрица». Инкапсуляция. кристина19 Помощь студентам 0 18.10.2010 20:13
Помощь с лабой: «Перегрузка операций» (ООП, класс-АТД, на с++) Nastja Помощь студентам 15 02.07.2010 14:09
Класс - вещественная матрица ne4eHbko Общие вопросы .NET 1 29.06.2010 23:34
Класс матриц, перегрузка операций с матрицами andros Помощь студентам 1 26.12.2008 19:49