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

Перегрузка операторов (на примере +) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Функция добавления в очередь, организация приоритетов в очереди http://www.cyberforum.ru/cpp-beginners/thread1155727.html
Вот функция добавления в очередь: void INSERT(TPQueue* &pbq,TPQueue* &peq, TElQ newEl) { TPQueue* el=new TPQueue; //Формируем новый элемент очереди el->info=newEl; el->next=NULL; if (!isEmpty(peq)) { //Если очередь НЕпустая peq->next=el; //Элемент заносим в очередь peq=el; //Указатель конца очереди перемещаем на новый //элемент
C++ Kanji IME словарь подстановок для японского На всякий случай решил разузнать может у кого то из форумчан имеется текстовый словарь IME подстановок для японского(пиньин не надо!). Стандартный IME от мелкософта не нужен, речь идёт о более широком проекте нежели Win. Прошу писать по делу. http://www.cyberforum.ru/cpp-beginners/thread1155713.html
C++ Написать кусок программы в соответствии с блок-схемой
Помогите пожалуйста написать кусок программы в соответствии с блок-схемой
C++ Несовпадение типов и отлов этих исключений
Доброго времени суток. Например, у меня есть переменная типа int, а в консоли я ввожу значение(cin) текстового типа. Ничего не происходит, программа аварийно не завершается int a; cin >> a; //ввожу "sadads" Но у меня программа организована циклом, и если я ввожу текстовое значение, то все последующие условия, связанные с этой переменной выполняются, например, if (a <= 0) {...} Подскажите,...
C++ Класс "Время". Как организовать функцию вывода времени и части суток http://www.cyberforum.ru/cpp-beginners/thread1155701.html
Здравствуйте! Такая проблема: как организовать функцию вывода времени и части суток (до 6:00 – ночь, до 12:00 – утро, до 18:00 – день, до 23:59:59 – вечер) и добавить к часам и минутам секунды ? И, если не сложно, посмотрите правильность работы этого класса (правильность открытия файлов через include и т.п.). time.h: //time.h #include <iostream> using namespace std; class Time{
C++ Как добавить числа в массив ? Задача такая, найти простые числа (в интервале от A до B) и вставить их в массив. Вот у меня есть такой набросок: #include <iostream> using namespace std; int simple(int p) { for(int i=2;i<= p/2;i++) if( (p%i)==0 ) return 0; return 1; подробнее

Показать сообщение отдельно
lartsevich
0 / 0 / 0
Регистрация: 23.04.2014
Сообщений: 5
24.04.2014, 00:47     Перегрузка операторов (на примере +)
newb_programmer, спасибо, что помогаете)

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
#include <iostream>
#include <cstdio>
#include <cmath>
 
using namespace std;
class Complex // класс комплексных чисел
{ public:
   double re, im; // целая и мнимая части
 
// создаем конструкторы
public:
 
   Complex() {};
 
   Complex (double r) // конструктор по умолчанию
   {
      re = r;
      im = 0;
   }
 
   Complex (double r, double i) // конструктор по умолчанию
   {
      re = r;
      im = i;
   }
 
   Complex (Complex &c) // конструктор копирования
   {
      re = c.re;
      im = c.im;
   }
 
   ~Complex() {}
 
   float abs() // Модуль комплексного числа
   {
      return sqrt(re * re - im * im);
   }
 
   Complex & operator = (Complex &c) // перегрузка оператора присваивания
   {
      re = c.re;
      im = c.im;
 
      return (*this);
   }
 
   Complex & operator = (double x) // перегрузка оператора присваивания
      {
         re = x;
         im = 0;
         return (*this);
      }
 
   Complex operator + (Complex &c) // перегрузка оператора сложения
   {
      Complex temp;
 
      temp.re = re + c.re;
      temp.im = im + c.re;
 
      return temp;
   }
 
   Complex operator - (Complex &c) // перегрузка оператора вычитания
   {
      Complex temp;
 
      temp.re = re - c.re;
      temp.im = im - c.re;
 
      return temp;
   }
 
   Complex operator * (Complex &c) // перегрузка оператора умножения
   {
      Complex temp;
 
      temp.re = re*c.re;
      temp.im = re*c.im;
 
      return temp;
   }
 
   Complex operator / (Complex &c) // перегрузка оператора деления
   {
      Complex temp;
 
      double r = c.re * c.re + c.im * c.im;
      temp.re = (re * c.re + im * c.im) / r;
      temp.re = (im * c.re - re * c.im) / r;
 
      return temp;
   }
   Complex operator + (double x) //прибавление действительного числа
   {
       Complex temp;
           temp.re = re+x;
           temp.im = im;
           return temp;
   }
 
    Complex operator -(double val) //вычитание действительного числа
   {
       Complex ret_val;
       ret_val.re = re-val;
       ret_val.im = im;
       return ret_val;
   }
 
  Complex operator *(double val) //умножение на действительное число
   {
       Complex ret_val;
       ret_val.re = re*val;
       ret_val.im = im*val;
       return ret_val;
   }
 
   Complex operator /(double val) //деление на действительное число
   {
       Complex ret_val;
       ret_val.re = re/val;
       ret_val.im = im/val;
       return ret_val;
   }
 
   friend ostream &operator<<(ostream &, Complex &); // перегрузка оператора <<
   friend istream &operator>>(istream &, Complex &); // перегрузка оператора >>
 
};
 
ostream &operator<<(ostream &out, Complex &c)
{
   out << "(" << c.re << ") + I (" << c.im << ")"<<"\n";
 
   return out;
}
 
istream &operator>>(istream &in, Complex &c)
{
   in >> c.re >> c.im;
 
   return in;
}
Complex pow_z_n (Complex z, double n)  //формула Муавра - возведение в степень
   {
       double r = sqrt(z.re*z.re + z.im*z.im);
       double fi = atan(z.im / z.re);
       Complex zn (pow(r,n)*cos(n*fi), pow(r,n)*sin(n*fi));
       return zn;
   }
 
int main()
{
    int k=10, n=10;
    const double pi = 3.14159265;
    Complex value1(3,5);
    Complex value2;
    Complex z[k][n];
       for (int i=1;  i<=k; i++)
        {for (int j=1; j<=n; j++)
            {  z[i][j].re = 0.5*cos(2*pi*i/j);
            z[i][j].im = 0.5*sin(2*pi*i/j);
            }
        }
 
 
   //    for (int i=1;  i<=k; i++)
   //           {for (int j=1; j<=n; j++)
    //              cout << z[i][j] << endl;
    //          }
 
//value2 = function(value1);
cout<< value1;
value2 += value1 + 7;
cout<<value2;
    return 0;
}
писала в Eclipse, если что)
 
Текущее время: 04:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru