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

оператор присваивания - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сортировка одномерного массива длиной N http://www.cyberforum.ru/cpp-beginners/thread171004.html
Сортировка одномерного массива длиной N! Как делать?
C++ Как сделать проверку на ввод? С++ y=2*(tgx+sinx/2); tgx стремится к бесконечности когда cos(x) стремится к нулю надо сделать проверку на это, и вывести сообщения об ошибке, помогите пожалуйста вот код: #include <iostream> #include <cmath> using namespace std; int main() { http://www.cyberforum.ru/cpp-beginners/thread171003.html
Дан файл, содержащий текст. Сколько слов в тексте? Сколько цифр в тексте? C++
Здравствуйте, мне вот задание дали. Подскажите алгоритм решения, а то я не очень с этим разбираюсь. Задача: Дан файл, содержащий текст. Сколько слов в тексте? Сколько цифр в тексте? Кто, что подскажет, буду благодарен:)
C++ Правильность и рациональность кода
Всем привет! Вот уже прошло 24 часа с момента начала моего обучения С++ :). До этого имел дело с такими языками, как Pascal и PHP. Ко вторнику нужно решить 30 задач. Пока решил 2 и хотелось бы узнать, насколько правильно и оптимально я это сделал, чтобы далее двигаться более рациональным путем. Может быть пропущены какие-то важные моменты? Кусок кода можно переписать гораздо легче? Или я вообще...
C++ Удалить из массива все элементы, совпадающие с минимальным http://www.cyberforum.ru/cpp-beginners/thread170981.html
здравствуйте) у меня такой вопрос. я сформировала массив. мне нужно в нём все элементы, совпадающие с миним. значением удалить.. и вывести полученный массив #include <iostream.h> void main() {
C++ Определить равна ли сумма первых двух цифр числа третьей его цифре bool ifaplusbC(int x) { int a,b,c; a=x/100; b=x%100; b=x/10; c=x%10; if(c==a+b) return true; else подробнее

Показать сообщение отдельно
besh]<a
13 / 11 / 1
Регистрация: 02.11.2009
Сообщений: 194
30.09.2010, 20:46  [ТС]     оператор присваивания
думал обойдусь теорией, не работает пока...
вот мой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class GrafMatr
{
     private:
       bool **m;
       int n;
     public:
       GrafMatr(int bn);
       ~GrafMatr();
       friend istream & operator>>(istream &is, GrafMatr &gmatr);
       friend ostream & operator<<(ostream &os, GrafMatr &gmatr);
       GrafMatr operator|(GrafMatr &nmatr) const;
       GrafMatr operator=(GrafMatr &nmatr); 
 
};
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
#include "GrafMatr.h"
 
 
GrafMatr::GrafMatr(int bn)
   {
      this->n=bn;
      this->m=new bool*[bn];
      for(int i=0;i<n;i++) this->m[i]=new bool[n];
   }
 
GrafMatr::~GrafMatr()
   {
      for(int i=1;i<this->n;i++)delete[]this->m[i];
      delete[]this->m;
   }
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// вот не работающие операторы
GrafMatr GrafMatr::operator|(GrafMatr &nmatr) const
   {
      GrafMatr RetMatr(this->n);
      for(int j=0;j<this->n;j++)
        for(int i=0;i<this->n;i++)
               RetMatr.m[j][i]=this->m[j][i]|nmatr.m[j][i];
 
      return RetMatr;
   }
 
GrafMatr GrafMatr::operator=(GrafMatr &nmatr)
{
      for(int j=0;j<nmatr.n;j++)
        for(int i=0;i<nmatr.n;i++)
               this->m[j][i]=nmatr.m[j][i];
      return *this;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
istream & operator>>(istream &is, GrafMatr &gmatr)
   {
     int buf;
     for(int j=0;j<gmatr.n;j++)
        for(int i=0;i<gmatr.n;i++)
         {
          is>>buf;
          if(buf>=1)gmatr.m[j][i]=1; else gmatr.m[j][i]=0;
         }
   }
 
ostream & operator<<(ostream &os, GrafMatr &gmatr)
   {
     for(int j=0;j<gmatr.n;j++)
        {
          for(int i=0;i<gmatr.n;i++) os<<gmatr.m[j][i]<<" ";;
          os<<"\n";
        }
   }
вылазит ошибка при такой конструкции:
C++
1
2
3
GrafMatr matr1(2),matr2(2),matr3(2);
.....
matr3=matr1|matr2;
[BCC32 Error] File1.cpp(18): E2285 Could not find a match for 'operator GrafMatr::=(GrafMatr)'
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru