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

Перегрузка операторов. Учусь. Ошибка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка компиляции http://www.cyberforum.ru/cpp-beginners/thread1153058.html
конвертировал проект в vs 2010 и вот с этим не могу бороться ::( 1>src\cornerstonefvmodel\SizingControlBar.cpp(41): error C2440: 'static_cast' : cannot convert from 'UINT (__thiscall CSizingControlBar::* )(CPoint)' to 'LRESULT (__thiscall CWnd::* )(CPoint)'
C++ Альтернатива php crypt для c++ На php есть функция crypt crypt("123123","$2a$10$LpsNQiOE8uW3TFOUdRckcOrV0yDBrr0.xPRPOPExG80sO6w2T27Nu"); Возращает: $2a$10$LpsNQiOE8uW3TFOUdRckcOrV0yDBrr0.xPRPOPExG80sO6w2T27Nu Что это за шифрование ? Чем это можно заменить для c++ ? Проверил все пункты с этой программы. Нет не одного совпадения. http://qt-apps.org/content/show.php/Qrypto?content=94369 http://www.cyberforum.ru/cpp-beginners/thread1153055.html
C++ Определить сумму, произведение и сумму квадратов всех элементов массива.
Определить: Сумму всех элементов массива; произведение всех элементов массива; сумму квадрата всех элементов массива.
Среднее арифметическое целочисленных координат C++
Для данной задачи разработать алгоритм и написать соответствующую программу с выводом результатов на экран. Требования к программе: - Входные данные ввести с помощью стандартных процедур ввода; - На печать вывести значение входной информации и результаты вычислений; - Входные данные взять произвольными, в пределах допустимых, если они явно не заданы в условии задачи. Вычислить среднее...
C++ Программа для нахождения суммы квадратов всех нечетных чисел http://www.cyberforum.ru/cpp-beginners/thread1153032.html
Знаю,что неправильно считает,3 раза подряд выдало 165,хотя вручную совсем другое число выходило. #include "stdafx.h" #include <iostream> #include <math.h> #include <stdio.h> using namespace std;
C++ Найти среднее арифметическое положительных элементов главной и побочной диагоналей матрицы Сразу скажу что не получается,не могу понять куда здесь впихивать условие проверки положительных чисел,и главное когда запускается студия сразу просит или пропустить или прервать,жёлтая стрелка указывает на if (j=n-i+1).ну и рандомно не выводит. и на действительных числах он ругается,пытался сначала сделать int.Размер матрицы (5Х5). Листинг программы: #include "stdafx.h" #include... подробнее

Показать сообщение отдельно
Маринчик
 Аватар для Маринчик
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 123
21.04.2014, 16:23  [ТС]     Перегрузка операторов. Учусь. Ошибка
Вот что у меня получилось
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
124
125
126
127
128
129
130
131
132
#include<stdio.h>
#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 massiv
        { float *a; int stroka; int n;
         public: float sum1;
         massiv();
         void vvod();/*vvod elementov*/
         void vivod();
         void sum_el();
         void vivod_stroka();
         
         ~massiv(){delete[]a; puts("rabotal destryktor\n");}    /*{puts("rabotal destryktor massiva\n")*/;
         };
 //==============================================//        
  massiv::massiv()
    {printf("\nvvedite razmer massiva n: ");
     scanf("%d",&n);
     puts("\nrabotal konstruktor massiva\n");    
    }  
    
//==============================================//    
  void massiv::vvod()/*vvod elementov*/
    {a=new float[n];
     for(int i=0;i<n;i++)
      {*(a+i)=rand() % 101 - 50;printf("%3.2f ", *(a+1));
      }/*ot -50 do 50  ili  rand() % 201 - 100 ot -100 do 100 */
    } 
  
//==============================================//        
  void massiv::sum_el()
    {sum1=0;/*snachala summa v stroke=0*/
     for(int i=0;i<n;i++)/*idem po strokam*/
      {sum1+=*(a+i);}/*summiruyem yeye elementy*/
    }
//==============================================//       
  void massiv::vivod_stroka()
    {printf("\nsumma elementov massiva= %3.2f",sum1); printf("\n");}
 
//========================================//==============================================//======//  
 
 
class matrica
        { float *x; int n,m; 
          public:
          float sum2; int stroka; float *b;int kol_str;
          matrica(); 
          void vvod();
          void vivod(); 
          void sum_el();
          void vivod_stroka();
          
          matrica operator-(massiv &mas);
           void reshenie();
          ~matrica(){delete[]x; puts("rabotal destryktor matrici\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::sum_el()
    { kol_str=0;
      for(int i=0;i<n;i++)/*idem po strokam*/
      {sum2=0;/*snachala summa v stroke=0*/
      for(int j=0;j<m;j++)/*idem po stroke*/
       sum2+=*(x+i*m+j);/*summiruyem ee elementy*/
      stroka=i+1; kol_str++;
      printf("\nsumma= %3.2f v stroke %d ",sum2, stroka); }printf("\n");
      printf("koli4estvo strok novoj matrici = %d",kol_str);printf("\n");
    } 
 /*----------------------------------------------------------------*/
matrica matrica::operator-(massiv &p)
{
    matrica rez;
 
    printf("Rabotaet minus\n");
    rez.x=new float [kol_str*m];/*Videlim pamjat' dlja rezyltiryjywej  matrici*/
    if (sum2<p.sum1)        /*esli summi strok po matrice men'we summi massiva*/
    {for (int i=0; i<kol_str; i++)  /*zapiwem stroki v rezyltiryjywyjy  matricy*/
     for(int j=0;j<m;j++)
     rez.x=(x+i*m+j);
     }
     return rez;
}
 
void matrica::reshenie()
{
for(int i=0;i<n;i++)
{
cout<<"\n" ;
for(int j=0;j<m;j++)
cout<< *(x+i*m+j)<<"  "; }
} 
 
 
int main()
{
massiv V;
V.vvod();
V.sum_el();
V.vivod_stroka();
system("pause");  
  
matrica A;
A.vvod();
A.vivod();
A.sum_el();
 
matrica rez = A - V;
rez.reshenie(); 
printf("\n");
system("pause"); 
}
но я теперь не понимаю правильно ли идет перегрузка оператора, потому что после вывода массива и матрицы, суммы их строк программа просит чтоб снова ввели значения для матрицы, задает матрицу новую а не вставляет и выводит нужные строки, элементы . Это ведь наверно неправильно..
И почему-то неправильно считается сумма элементов массива.
 
Текущее время: 01:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru