From 0218c678e13e1cb94a352c91733cea68467dc566 Mon Sep 17 00:00:00 2001 From: Angeld55 Date: Sun, 14 Feb 2021 23:06:35 +0200 Subject: start from scratch --- Polymorphism/MathExpression/main.hpp | 43 ------------------------------------ 1 file changed, 43 deletions(-) delete mode 100644 Polymorphism/MathExpression/main.hpp (limited to 'Polymorphism/MathExpression/main.hpp') diff --git a/Polymorphism/MathExpression/main.hpp b/Polymorphism/MathExpression/main.hpp deleted file mode 100644 index 5fa3f8f..0000000 --- a/Polymorphism/MathExpression/main.hpp +++ /dev/null @@ -1,43 +0,0 @@ -#include "Expression.hpp" -#include "Num.hpp" -#include "Operation.hpp" -bool AreTheSame(Expression* left, Expression* right); -int main() -{ - Expression* l = new Num(3); - Expression* r = new Num(7); - Expression* final1 = new Operation(l, '+', r); - - Expression* l2 = new Num(3); - Expression* r2 = new Num(7); - Expression* final2 = new Operation(l2, '+', r2); - - std::cout << final1->Evaluate(); - - std::cout << AreTheSame(final1, final2); - - delete final1, final2; //Винаги трием най-големите 'Expression-и'. Те се грижат за по-малките от които са образувани. - - - -} -bool AreTheSame(Expression* left, Expression* right) -{ - if (left->getType() != right->getType())//гледаме дали не са от раличен тип (едното да е опрация,другото да е число) - return false; //очевидно са различни тогава - - if (left->getType() == 1) //ако двете са числа - { - Num* l = (Num*)left; //Конвертираме пойнтерите - Num* r = (Num*)right; - return l->getNum() == r->getNum(); //сравняваме стойностите - } - else //Ако двете са операции - { - Operation* l = (Operation*)left; - Operation* r = (Operation*)right; - return (l->op == l->op) && AreTheSame(l->left, r->left) && AreTheSame(l->right, r->right); - //гледаме дали знаците на опрациите съвпадат, дали левите страни съвпадат и дали десните страни съвпадат. - } - -} -- cgit v1.3.1-23-gd82d