Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 4
Регистрация: 16.02.2013
Сообщений: 123

Ошибки при перегрузке операторов

18.05.2014, 12:39. Показов 692. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ну не могу,не получается самостоятельно разобрать свои ошибки((
Они по большей части повторяются. Помогите пожалуйста.

ошибки следующие:
14 `Matrica Matrica::operator<(Matrica&, Matrica&)' must take exactly one argument
In function `Matrica operator<(Matrica&, Matrica)':
58 no match for 'operator=' in 'rez = P1->Matrica::stroka'
note D:\Ó×ÅÁÀ\àëãîðèòìè÷åñêèå ÿçûêè\21.cpp:15 candidates are: Matrica Matrica::operator=(Matrica&)
59 no match for 'operator=' in 'rez = P2.Matrica::stroka'
note :15 candidates are: Matrica Matrica::operator=(Matrica&)
In member function `Matrica Matrica::operator=(Matrica&)':
63 no matching function for call to `Matrica::Matrica(int&)'
noteD:\Ó×ÅÁÀ\àëãîðèòìè÷åñêèå ÿçûêè\21.cpp :6 candidates are: Matrica::Matrica(const Matrica&)
note D:\Ó×ÅÁÀ\àëãîðèòìè÷åñêèå ÿçûêè\21.cpp:6 Matrica::Matrica()
In function `int main()':
92 no match for 'operator=' in 'V = operator<(Matrica&, Matrica)(M2)'
note D:\Ó×ÅÁÀ\àëãîðèòìè÷åñêèå ÿçûê
è\21.cpp:63 candidates are: Matrica Matrica::operator=(Matrica&) [/I]

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
#include<iostream>/*zagolovochnij fajl s klassami, funktsijami i peremennimi dlja organizacii vvoda-vivoda v jazike programmirovaniya C++*/
/*#include <stdlib.h>*/
using namespace std;/*ob'javlenie prostranstva imen  std.*/
 
class Matrica
     { float *x;  float *a;
       public:float sum, min; int stroka;int k;int n,m;
              Matrica(); 
              void vvod();
              void vivod(); 
              void min_sum_el();
              void vivod_stroka();
              void ww();
              Matrica  operator< (Matrica& ob1, Matrica& ob2);
              Matrica  operator=(Matrica& ob2);
              ~Matrica(){delete[]x; puts("rabotal destryktor\n");}                
     };
     
  Matrica::Matrica()
  {/*printf("\nvvedite razmernost n*m: ");*/
     scanf("%d %d",&n,&m);
     puts("\nrabotal konstruktor matrici\n");    
    } 
 //==============================================//   
 void Matrica:: vvod()    
      {x = new float [n*m]; 
      for(int i = 0; i < n; i++)
      for(int j = 0; j < m; j++)
      *(x + i * m + j) = rand() % 101 - 50;
      }
//==============================================//
 void Matrica::vivod()/*vivodit matrici na ekran*/
    {printf("\nmatrica:\n"); 
     for(int i = 0; i < n; i++)
     {for(int j = 0; j < m; j++)
      cout<<*(x + i * m + j)<< " ";
      cout << "\n";
     }  
    }
//==============================================//    
 void Matrica::min_sum_el()
  {min = 1000;/*prinimayem za minimum samoye bolshoye chislo tipa  1000*/
   for(int i = 0; i < n; i++)/*idem po strokam*/
   {sum = 0;/*snachala summa v stroke=0*/
    for(int j = 0;  j < m; j++)/*idem po stroke*/
       sum+= *(x + i * m + j);/*summiruyem yeye elementy*/
        if (sum < min) 
        {min = sum; stroka = i + 1;}/*esli summa v dannoy stroke menshe chem predydushchiy minimum to eto minimum i zapomnim nomer stroki*/
   }
  }
 //==============================================//      
  void Matrica::vivod_stroka()
  {printf("Minimalnaya summa= %3.2f v stroke %d ",min, stroka); printf("\n");}
   //==============================================//  
  
Matrica  operator<(Matrica& P1, Matrica P2)  
   {Matrica rez; 
   if (P1.stroka < P1.stroka) rez = P1.stroka;
    else rez = P2.stroka;
       return rez;   }
  //==============================================//         
Matrica Matrica::operator=(Matrica& P1)
{Matrica rez(P1.n);
for(int i = 0; i < n; i++)
*(a + i * m) = *(P1.x + i*P1.m);
return * this;
}
 
  //==============================================//  
void Matrica::ww()
{for(int i = 0; i < n; i++)
      cout<<*(a + i)<< " ";
      cout << "\n";
}                
 
int main()
{Matrica M1;
 M1.vvod();
 M1.vivod();
 M1.min_sum_el();
 M1.vivod_stroka();
 system("pause");
 
 Matrica M2;
 M2.vvod();
 M2.vivod();
 M2.min_sum_el();
 M2.vivod_stroka();
 system("pause");
 
 Matrica V;
 V = M1 < M2;
 V.ww();
 system("pause");
    }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.05.2014, 12:39
Ответы с готовыми решениями:

Ошибки при перегрузке операторов класса
Задали в универе для класа триугольника с полями 3х сторон реализовать перегрузку операторов &lt;&lt;, !=, ==, &lt;, &gt;, &lt;=, &gt;=. ...

Ошибка при перегрузке операторов
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; class fraction { public: int numerator; int denominator; fraction(); ...

Ошибка при перегрузке операторов.
Здравствуйте! Возникла необходимость создать свой класс-обертку для работы с большими числами. Бибилиотека mpir=порт GMP. Пример рабочий:...

1
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
18.05.2014, 13:09
Цитата Сообщение от Милашечка Посмотреть сообщение
Matrica Matrica::operator<(Matrica&, Matrica&)' must take exactly one argument
Т.к. оператор в данном случае объявлен как член-класса, то он автоматически принимает неявный параметр this. Поэтому сигнатура должна включать единственный явный аргумент:
C++
1
bool Matrica::operator<(const Matrica&) // Обрати ещё внимание на возвращаемый тип
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.05.2014, 13:09
Помогаю со студенческими работами здесь

Конфликт при перегрузке операторов
Здравствуйте ,изучаю C++ и делая очередное задание столкнулся с проблемой (привожу код ниже) Компилятора Visual Studio 2017 . При...

Ошибка при перегрузке операторов в классе
Я создал класс myNVector для работы с векторами произвольного размера: в заголовочном файле: class myNVector { public: ...

При перегрузке операторов не записывает значение
Собственно вот мой код: class.h class Otrezku { public: Otrezku(); Otrezku(float , float , float , float ); ...

Можно ли при перегрузке операторов задавать дополнительные параметры?
Здравствуйте. Мне в функции перегрузки оператора нужно передать дополнительный параметр, можно ли это сделать? void operator...

Сколько используется параметров при перегрузке унарных операторов как френд-функций?
Вопрос следующий интересует: При перегрузке унарных операторов как френд-функций сколько используется параметров? Также при перегрузке...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru