edward4324

иксди

Dec 9th, 2021 (edited)
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.27 KB | None | 0 0
  1. ///FN.h
  2. #pragma once
  3. #include <iostream>
  4.  
  5. struct Node {
  6.  
  7.     double* x,
  8.         * e1,
  9.         * e2;
  10.  
  11. };
  12.  
  13. class FN {
  14.  
  15. private:
  16.     Node* data = new Node;
  17.  
  18. public:
  19.  
  20.     FN() {};
  21.     FN(double, double, double);//����������� ��� �������� ��������
  22.     FN(Node*);//����������� �����������
  23.  
  24.     Node* getData();
  25.  
  26.     Node* operator+(Node*);//������������� ��������
  27.     Node* operator-(Node*);//������������� ��������
  28.     Node* operator*(Node*);//������������� ���������
  29.  
  30.     bool operator<(Node*);
  31.     bool operator==(Node*);
  32.     //bool operator>(Node*);
  33.     //bool operator<=(Node*);
  34.     //bool operator>=(Node*);
  35.  
  36.     void ToString();//�������� ������ ������ �� ���������� ������
  37.     void operator=(Node*);//������������� �������� ������������
  38.    
  39.     friend std::ostream& operator<<(Node*, ostream&);//������������� �������� <<
  40.     void operator>>(Node*);//������������� �������� >>
  41.  
  42. };
  43.  
  44. ////////////////////////////////
  45.  
  46. #include <iostream>
  47. #include "FN.h"
  48.  
  49. using namespace std;
  50.  
  51. FN::FN(double x, double e1, double e2) {
  52.  
  53.     data->x = new double(x);
  54.     data->e1 = new double(e1);
  55.     data->e2 = new double(e2);
  56.  
  57. }
  58.  
  59. FN::FN(Node* copy) {
  60.     copy->x = new double(*this->data->x);
  61.     copy->x = new double(*this->data->e1);
  62.     copy->x = new double(*this->data->e2);
  63. }
  64.  
  65.  
  66. void FN::ToString() {
  67.  
  68.     cout << "("
  69.          << *this->data->e1 << ";"
  70.          << *this->data->x << ";"
  71.          << *this->data->e2 << ")"
  72.          << endl;
  73.  
  74. }
  75.  
  76. Node* FN::getData() {
  77.     return data;
  78. }
  79.  
  80. Node* FN::operator+(Node* elem){
  81.  
  82.     Node* temp = new Node;
  83.  
  84.     temp->x = new double(*this->data->x + *elem->x);
  85.     temp->e1 = new double(*this->data->e1 + *elem->e1);
  86.     temp->e2 = new double(*this->data->e2 + *elem->e2);
  87.  
  88.     return temp;
  89.        
  90.  
  91. }
  92.  
  93. Node* FN::operator-(Node* elem){
  94.  
  95.     Node* temp = new Node;
  96.  
  97.     temp->x = new double(*this->data->x - *elem->x);
  98.     temp->e1 = new double(*this->data->e1 - *elem->e1);
  99.     temp->e2 = new double(*this->data->e2 - *elem->e2);
  100.  
  101.     return temp;
  102.  
  103. }
  104.  
  105. Node* FN::operator*(Node* elem){
  106.  
  107.     Node* temp = new Node;
  108.  
  109.     temp->x = new double(*this->data->x * *elem->x);
  110.     temp->e1 = new double(*this->data->e1 * *elem->e1);
  111.     temp->e2 = new double(*this->data->e2 * *elem->e2);
  112.  
  113.     return temp;
  114.  
  115. }
  116.  
  117. bool FN::operator==(Node* elem) {
  118.  
  119.     return
  120.         this->data->x == elem->x &&
  121.         this->data->e1 == elem->e1 &&
  122.         this->data->e2 == elem->e2;
  123.  
  124. }
  125.  
  126. //bool FN::operator<(Node* elem){
  127. //
  128. // 
  129. //
  130. //  return 0;
  131. //}
  132.  
  133. //bool FN::operator>(Node* elem){
  134. //
  135. // 
  136. //
  137. //}
  138.  
  139. //bool FN::operator<=(Node* elem){
  140. //
  141. // 
  142. //
  143. //}
  144.  
  145. //bool FN::operator>=(Node* elem){
  146. //
  147. // 
  148. //
  149. //}
  150.  
  151. void FN::operator=(Node* tmp){
  152.  
  153.     this->data->x = tmp->x;
  154.     this->data->e1 = tmp->e1;
  155.     this->data->e2 = tmp->e2;
  156.  
  157. }
  158.  
  159. std::ostream& FN::operator<<(Node* elem, ostream& out){
  160.  
  161.     out << "("
  162.         << *elem->e1 << ";"
  163.         << *elem->x << ";"
  164.         << *elem->e2 << ")";
  165.     return out;
  166.  
  167. }
  168.  
  169. void FN::operator>>(Node* elem){
  170.  
  171.  
  172.  
  173. }
  174.  
  175.  
Add Comment
Please, Sign In to add comment