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

Перегрузка операторов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Метод Гаусса http://www.cyberforum.ru/cpp-beginners/thread164657.html
Добрый вечер, можете написать программу для решения СЛАУ методом гаусса на Си, чтобы был прямой и обратный ход.
C++ Открытие файла по нажатию на клавишу Подскажите пожалуйста как сделать чтобы при нажатии "H" мне открывался текстовый фаил с спавкой об игре??? http://www.cyberforum.ru/cpp-beginners/thread164655.html
C++ Написать функцию, которая сравнивает целых числа и возвращает результат сравнения в виде одного из знаков: <, > или =.
Написать функцию, которая сравнивает целых числа и возвращает результат сравнения в виде одного из знаков: <, > или =. Написати функцію, яка порівнює цілих числа і повертає результат порівняння в вигляді одного з знаків: <, > або =. Оффициальным языком форума является русский язык. В дальнейшем темы с заданиями на языке отличном от русского будут удаляться.
Как из массива брать случайный его элемент? C++
как из массива брать случайный его элемент???
C++ Поиск среднего арифметического массива http://www.cyberforum.ru/cpp-beginners/thread164637.html
Дано массив чисел,написать програму какая находит среднее арифметическое число.
C++ Вычислить значение выражения при различных вещественных типах данных Вычислить значение выражения при различных вещественных типах данных (float и double). Вычисления следует выполнять с использованием промежуточных переменных. ((a-b)^3-a^3)/(b^3-3*a*b^2-3*a^2*b) при а=1000, b=0.0001 1) n++*m 2) n++<m 3) m-- >m подробнее

Показать сообщение отдельно
Garret192
 Аватар для Garret192
1 / 1 / 0
Регистрация: 21.10.2009
Сообщений: 84
09.09.2010, 19:33     Перегрузка операторов
Привет всем.Вот и начался новый учебный год,и значит началось програмирование, и значит начались мои проблемы. Первой задачей было составить программу с класами которая находила бы сумму разность и произведение матриц N на M и M на K.Я это сделал.
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
111
112
113
114
115
116
117
118
119
120
121
122
123
#include<iostream.h>
#include<stdlib.h>
const int max_n = 50;
const int max_m = 50;
const int max_k= 50;
const int max_x= 50;
const int max_y= 50;
class Matriwa{
    int a,b,c;
    int x[max_n][max_m];
    int y[max_n][max_k];
    int z[max_x][max_y];
public:
  Matriwa(int m, int n, int k);
void show();
void plus();
void minus();
void umnochenie();
 
};
Matriwa::Matriwa(int m, int n,int k){
  a=m;b=n;c=k;
  cout<<"Vvedi elementi pervoi matriw "<<endl;
  for(int i=0;i<a;i++)
  {
      for(int j=0;j<b;j++)
       cin>>x[i][j];
 
  }
  cout<<" A teper vrorai "<<endl;
  for(int i=0;i<b;i++)
  {
      for(int j=0;j<c;j++)
       cin>>y[i][j];
  }
 
}
void Matriwa::show(){
    cout<<"Pervai matriwa "<<endl;
      for(int i=0;i<a;i++)
      {
       for(int j=0;j<b;j++)
       cout<<x[i][j]<<' ';
       cout<<endl;
      }
    cout<<"Vtorai matriwa"<<endl;
     for(int i=0;i<b;i++)
     {
      for(int j=0;j<c;j++)
       cout<<y[i][j]<<' ';
       cout<<endl;
     }
 
}
void Matriwa::plus(){
   cout<<"Matriwa poluchennai putem slojeniy "<<endl;
    for(int i=0;i<a;i++)
      {
       for(int j=0;j<b;j++)
         z[i][j]=x[i][j]+y[i][j];
      }
     for(int i=0;i<b;i++)
     {
      for(int j=0;j<c;j++)
       cout<<z[i][j]<<' ';
       cout<<endl;
     }
 
}
void Matriwa::minus(){
   cout<<"Matriwa poluchennai putem viyichatanie "<<endl;
    for(int i=0;i<a;i++)
      {
       for(int j=0;j<b;j++)
         z[i][j]=x[i][j]-y[i][j];
      }
     for(int i=0;i<b;i++)
     {
      for(int j=0;j<c;j++)
       cout<<z[i][j]<<' ';
       cout<<endl;
     }
}
void Matriwa::umnochenie(){
     cout<<"Matriwa poluchennai putem umnochenie "<<endl;
     for(int i=0;i<a;i++)
       for(int j=0;j<c;j++)
      {
       z[i][j]=0;
       for(int k=0;k<b;k++)
       z[i][j]+=(x[i][k]*y[k][j]);
      }
     for(int i=0;i<b;i++)
     {
      for(int j=0;j<c;j++)
       cout<<z[i][j]<<' ';
       cout<<endl;
     }
 
}
 
int main(){
  int a,b,c;
  cout<<"Vvdi kolichestvo strok"<<endl;
  cin>>a;
  cout<<"Vvdi kolichestvo stolbwov 1 matriwi i kolichestvo strok 2 matriwi "<<endl;
  cin>>b;
  cout<<"Vvdi kolichestvo stolbov vtoroi matriwi "<<endl;
  cin>>c;
  Matriwa ob(a,b,c);
  ob.show();
  if(a!=b && b!=c)
  cout<<"WE CANNOT DO IT "<<endl;
  else
  ob.plus();
  if(a!=b && b!=c)
  cout<<"WE CANNOT DO IT "<<endl;
  else
  ob.minus();
  ob.umnochenie();
  char w; cin>>w;
  return 0;
}
. Но я подумал что не может быть так легко где-то должен быть подвох.
И я был прав. В посдедний день перед сдачей лабы (сегодня) я узнаю что это нужно было сделать используя перегрузку операторов(надо внимательнее слушать препода ) а я вообще не представляю каким образом это можно сделать. Помогите пожалуйста. Если это несложно подправить в программе,ну я если это полностью меняет всю программу дать совет по её реализации.
Заранее спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru