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

[c++] Перегрузка операторов - C++

Восстановить пароль Регистрация
 
molnia
 Аватар для molnia
7 / 7 / 1
Регистрация: 21.11.2008
Сообщений: 41
28.03.2010, 17:02     [c++] Перегрузка операторов #1
Для заданных A = (A – a1, A, A + a2) и B = (B – b1, B, B + b2) Найти сумму
A + B = (A + B – a1 – b1, A + B, A + B + a2 + b2);

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
#include <conio.h>
#include <iostream.h>
 
struct FazzyNumber
{ double x;
  double x1,x2;
  void init(double x,double e1,double e2);
  };
 
 void FazzyNumber::init(double x,double e1,double e2)
 { x=x;
   x1=x-e1;
   x2=x+e2;
 }
 FazzyNumber operator+(FazzyNumber A,FazzyNumber B)
 { FazzyNumber rez;
   rez.x1=A.x+B.x-A.x1-B.x1;
   rez.x=A.x+B.x;
   rez.x2=A.x+B.x+A.x2+B.x2;
      return rez;
 }
 
int main()
{ FazzyNumber A,B,X;
  double x;
  double e1,e2;
  A.init(1.0,0.5,0.5);
  B.init(1.0,0.01,0.01);
  X=A+B;
  cout<<" \n result: "<<X.x1<<", "<<X.x<<", "<<X.x2;
        getch();
        return 0;
}
Выводит не то что надо. Должно быть (0.51, 2 ,3.99)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2010, 17:02     [c++] Перегрузка операторов
Посмотрите здесь:

C++ [c++] Перегрузка операторов
[C++] Перегрузка операторов C++
C++ Перегрузка операторов
перегрузка операторов C++
C++ перегрузка операторов
Перегрузка операторов C++
Перегрузка операторов C++
C++ Перегрузка операторов (--, +=, -=, == )

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
 Аватар для Nameless One
5754 / 3403 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
28.03.2010, 17:26     [c++] Перегрузка операторов #2
Я немножко переделал, и у меня выводит
Код
 result: 0.51, 2, 4.51
Я даже проверил вручную, и, судя по всему, мой ответ - правильный.
Вот код:
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
#include <conio.h>
#include <iostream>
 
struct FazzyNumber
{ double x;
  double x1,x2;
  FazzyNumber(double x,double e1,double e2);
  FazzyNumber() : x(), x1(), x2() {}
  };
 
 FazzyNumber::FazzyNumber(double _x,double e1,double e2)
     :x(_x)
 {
   x1=x-e1;
   x2=x+e2;
 }
 FazzyNumber operator+(FazzyNumber A,FazzyNumber B)
 { FazzyNumber rez;
   rez.x=A.x+B.x;
   rez.x1=rez.x-A.x1-B.x1;
   rez.x2=rez.x+A.x2+B.x2;
      return rez;
 }
 
int main()
{ FazzyNumber A(1.0,0.5,0.5), B(1.0,0.01,0.01),X;
  X=A+B;
  std::cout<<" \n result: "<<X.x1<<", "<<X.x<<", "<<X.x2 << std::endl;
        getch();
        return 0;
}
Yandex
Объявления
28.03.2010, 17:26     [c++] Перегрузка операторов
Ответ Создать тему
Опции темы

Текущее время: 03:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru