Delphi-int.ru: портал программистов

Вход Регистрация | Забыли пароль?

Просмотр кода

Идентификатор: de21cc11 Описание: Код загружен: 9 октября 2012, 20:40 (QW01_01)

  1. #include <conio>
  2. #include <cmath>
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. class Num {
  8. protected:
  9. double re;
  10.  
  11. public:
  12.  
  13. Num(double data=0) {
  14. re = data;
  15. }
  16.  
  17. double get() {
  18. return re;
  19. }
  20.  
  21. double set(double data) {
  22. re = data;
  23. return re;
  24. }
  25.  
  26. void show() {
  27. std::cout << re << "\n";
  28. }
  29.  
  30. Num clone() {
  31. return Num(re);
  32. }
  33.  
  34. Num operator +(Num data) {
  35. return Num(re + data.get());
  36. }
  37.  
  38. Num operator +(double data) {
  39. return Num(re + data);
  40. }
  41.  
  42. friend Num operator +(double a, Num &b) {
  43. return Num(a + b.get());
  44. }
  45.  
  46. /*Complex operator =(Num &a, Complex &b) {
  47.   a.set(b.getRe());
  48.   return b.clone();
  49.   } */
  50. };
  51.  
  52. class Complex : public Num {
  53. private:
  54. double im;
  55.  
  56. public:
  57.  
  58. Complex(double data=0, double b = 0) : Num(data) {
  59. im = b;
  60. }
  61.  
  62. Complex (Num data) {
  63. re=data.get();
  64. im =0;
  65. }
  66.  
  67. Complex clone() {
  68. return Complex(re, im);
  69. }
  70.  
  71. double getRe() {
  72. return Num::get();
  73. }
  74.  
  75. double setRe(double data) {
  76. return Num::set(data);
  77. }
  78.  
  79. double getIm() {
  80. return im;
  81. }
  82.  
  83. double setIm(double data) {
  84. im = data;
  85. return im;
  86. }
  87.  
  88. void show() {
  89. std::cout << re << "+i*" << im << "\n";
  90. }
  91.  
  92. Complex operator +(Complex &x) {
  93. return Complex(re + x.getRe(), im + x.getIm());
  94. }
  95.  
  96. Complex operator +(Num &x) {
  97. return Complex(re + x.get(), im);
  98. }
  99.  
  100. Complex operator +(double x) {
  101. return Complex(re + x, im);
  102. }
  103.  
  104. friend Complex operator +(Num &a, Complex &b) {
  105. return Complex(a.get() + b.getRe(), b.getIm());
  106. }
  107.  
  108. friend Complex operator +(double a, Complex &b) {
  109. return Complex(a + b.getRe(), b.getIm());
  110. }
  111.  
  112. ~Complex() {
  113. };
  114.  
  115. };
  116.  
  117. void main() {
  118.  
  119. Complex a(2, 4);
  120. Complex b(1);
  121. Complex c;
  122.  
  123. Num d(3);
  124. Num f;
  125.  
  126. f.show();
  127. (d + 3).show();
  128. (f + d + 1).show();
  129. (1 + d).show();
  130.  
  131. cout << "------------\n";
  132.  
  133. c.show();
  134. (a + b).show();
  135. (a + 1).show();
  136. (1 + a).show();
  137. (a+d).show();
  138. (d+a).show();
  139.  
  140. f=((Num)(d+a));
  141. f.show();
  142.  
  143. c=f;
  144. c.show();
  145.  
  146. getch();
  147. }
  148. // ---------------------------------------------------------------------------

Ссылка на данный код:

На главную страницу сервиса обмена кодом »