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

Не выводит перегрузку оператора сложения - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу, которая вводимое число преобразует в текст http://www.cyberforum.ru/cpp-beginners/thread1132633.html
Написать программу, которая по вводимому числу от 1 до 5 (номеру курса) выдает соответствующее сообщение «Привет, k-курсник». Например, если k=1, «Привет, первокурс*ник»; при k=4: «Привет, четверокурсник»
C++ Вычислить сумму и число положительных элементов матрицы, находящихся над главной диагональю Помогите пожалуйста решить, и распишите каждую строку а то будут спрашивать что тут а что там. -Двумерный массив вычислить сумму и число положительных элементов матрицы A, находящихся над главной диагональю. http://www.cyberforum.ru/cpp-beginners/thread1132627.html
C++ Создать консольное приложение, которое продолжало бы работать до тех пор, пока не нажата клавиша "y"
Доброго времени суток. Прошу помочь в решении поставленного передо мной вопроса. Суть: Нужно написать консольное приложение, которое продолжало бы работать до тех пор, пока не нажата клавиша "y" (не важно какая это будет кнопка, может быть любая другая). Я написал кое-что, но это работает неправильно - программа основана на цикле While. Первый проход она делает как положено, а вот после...
C++ Раздельная компиляция
В Гугле не забанен,нашел описание самого принципа,но конкретных примеров не нашел. Вопросы вот какие: 1) Если у меня есть класс, который я хочу вынести во внешний фаил, то нужно будет два фаила - .h и .cpp ? И как их подключать к проекту,чтобы компиляция свершилась? И методы класса там же указываются? 2) Внешние функции, как я понимаю, выносятся в фаилы .cpp . Соответственно, тоже не особо...
C++ Дублирование последнего символа при чтении файла http://www.cyberforum.ru/cpp-beginners/thread1132607.html
Подскажите пожалуйста почему в файле output.txt, который записывает программа, дублируется последний символ input.txt ? #include <iostream> #include <stdio.h> #include <conio.h> #include <string> #include <fstream> using namespace std; int main()
C++ Хеширование строк большого файла Здравствуйте! Помогите, пожалуйста разобраться с процессом хеширования. Задача состоит в том, что мне дан текстовый файл примерно в 100Мб (в общем, большой). Мне нужно создать файл, который будет содержать значения хеш-функции (в задании надо использовать CRC16, но с ней я разобрался) для каждого слова в этом файле. Как я понимаю, я должен считывать слово из исходного файла, пропускать его через... подробнее

Показать сообщение отдельно
Alecdd
0 / 0 / 0
Регистрация: 28.03.2014
Сообщений: 8

Не выводит перегрузку оператора сложения - C++

28.03.2014, 22:46. Просмотров 407. Ответов 9
Метки (Все метки)

Помогите пожалуйста исправить ошибку: не выводит перегрузку оператора сложения как сделать чтобы
/*Класс "Многочлен одной переменной". Поля: степень многочлена, массив коэффициентов.
Методы: вычисление значения, дифференцирование, перегрузка операций сложения "+" и сравнения на равенство "==" двух многочленов.*/
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
#include <iostream>
#include <ctime>
#include <math.h>
using namespace std;
 
class Polynomial
{
      int n;
      double *a;
      public:
      Polynomial();
      Polynomial(int k);
      Polynomial(Polynomial &obj);
      ~Polynomial();
      friend istream & operator >>(istream &stream, Polynomial &x);
      friend ostream & operator <<(ostream &stream, Polynomial &x);
      void input();
      void output();
      void getp(int x, char ch);
      void dif();
      Polynomial operator = (Polynomial obj);
      Polynomial operator + (Polynomial x);
      bool operator == (Polynomial x);
};
 
Polynomial :: Polynomial()
{
   cout<<"\nРаботает конструктор без параметров\n";
   n=4;
   a=new double [n+1];
   for(int i=0; i<n+1; i++)
    a[i]=i+1;
}
 
Polynomial :: Polynomial(int k)
{
           cout<<"\nРаботает контструктор с параметрами\n";
           if(k<0) exit(0);
           if(!k) {n=0; a=NULL;}
           if(k>0) { n=k; a=new double [n+1];}             
}
 
Polynomial :: Polynomial(Polynomial &obj)
{
           cout<<"\nРаботает контруктор копирования\n";
           n=obj.n;
           if(!n) a=NULL;
           else 
           {
                a=new double [n+1];
                for(int i=0; i<n+1; i++)
                 a[i]=obj.a[i];
           }
}
 
Polynomial :: ~Polynomial()
{
           cout<<"\nРаботает деструктор\n";
           delete [] a;          
}
 
istream & operator >>(istream &stream, Polynomial &x)
{
       for(int i=0; i<x.n+1; i++)
         stream>>x.a[i];
       return stream;
}
 
ostream & operator <<(ostream &stream, Polynomial &x)
{
     int k=x.n;
     for(int i=0; i<x.n; i++)
      {
       stream<<x.a[i]<<"x^"<<k<<" + ";
       k--;
      }
     stream<<x.a[x.n];
     return stream;
}  
 
void Polynomial :: input()
{
     cout<<"\nИспользуется метод input\n";
     for(int i=0; i<n+1; i++)
      cin>>a[i];
}
 
void Polynomial :: output()
{
     cout<<"\nИспользуется метод output\n";
     int k=n;
     for(int i=0; i<n; i++)
     {
             cout<<a[i]<<"x^"<<k<<" + ";
             k--;
     }
     cout<<a[n];
}
 
void Polynomial :: getp(int x, char ch)
{
   cout<<"\nИспользуется метод getp\n";
   int k=n;
   double z=0;
   for(int i=0; i<n; i++)
    {
           z+=(a[i] * pow(x, k)) ;         
           k--;
    }
   z+=a[n]; 
   cout<<endl<<"Значение многочлена "<<ch<<" при x="<<x<<": "<<z;
}
 
void Polynomial :: dif()
{
     cout<<"\nИспользуется метод dif\n";
     for(int i=0; i<n; i++)
     {
             a[i]*=(n-i);
     }
     n--;
}
 
bool Polynomial :: operator ==(Polynomial x)           
{
     int i;
     for(i=0; i<n; )
     {
      if(a[i]==x.a[i]) i++;
      else return false;
     }
     return true;              
}
 
Polynomial Polynomial :: operator = (Polynomial obj)
{
       n=obj.n;
       delete[] a;
       if(!n) a=NULL;
       else 
       {
          a=new double [n+1];
          for(int i=0; i<n+1; i++)
            a[i]=obj.a[i];
       }
       return *this;
}
 
Polynomial Polynomial :: operator + (Polynomial x)
{
      int z=(n>x.n)?n:x.n;
      Polynomial tmp(z);
      int md=n<x.n?n:x.n,i;
      if (n>x.n)
      {   for(i=0;i<z;i++)
            tmp.a[i]=a[i];
          for(i=0;i<md;i++)
             tmp.a[i]+=x.a[i];
      }
      else  
      {   for(i=0;i<z;i++)
            tmp.a[i]=x.a[i];
          for(i=0;i<md;i++)
             tmp.a[i]+=a[i];
      }  
      return tmp;
}
 
int main()
{
  setlocale(0, "rus");
  Polynomial d(3), c;
  cout<<"Многочлен с: ";
  c.output();
  cout<<endl<<"Введите коф-ты многочлена d: ";
  d.input();
  cout<<"Многочлен d: "<<d;
  d.getp(3, 'd');
  Polynomial v(d);
  cout<<endl<<"Многочлен v скопированый с многчлена d: "<<v;
  if(d==v) cout<<"\nМногочлен d равен многочену v";
  else cout<<"\nМногочлен d неравен многочлену v";
  v.dif(); 
  cout<<endl<<"Многочлен v после диффириенцирования: "<<v;
  if(d==v) cout<<"\nМногочлен d равен многочену v";
  else cout<<"\nМногочлен d неравен многочлену v";
  system("pause > nul");
  return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru