Website Summary Files Commits Branches @commit @diff @stats
path: root / Polymorphism / MathExpression / main.hpp
diff options
context:
space:
mode:
Commit0fa3378234bf4796677f7dcca6488c7a16632c17 (patch)
Author
 Angeld55 <achi_d@abv.bg>
2019-09-24 00:14:03 +0300
Committer
 GitHub <noreply@github.com>
2019-09-24 00:14:03 +0300
Files82e3deaf448b7ea9d25a253b95d02dce7deb3a4a /Polymorphism/MathExpression/main.hpp
Object-oriented_programming_FMI-0fa3378234bf4796677f7dcca6488c7a16632c17.tar
Object-oriented_programming_FMI-0fa3378234bf4796677f7dcca6488c7a16632c17.tar.gz
Object-oriented_programming_FMI-0fa3378234bf4796677f7dcca6488c7a16632c17.zip
Parente4d18fcd53413b9b483a42179f1789bc6cf4f646 (diff)
Add files via upload
1 files changed, 25 insertions, 2 deletions
-rw-r--r--Polymorphism/MathExpression/main.hpp27
diff --git a/Polymorphism/MathExpression/main.hpp b/Polymorphism/MathExpression/main.hpp
index a309f44..5fa3f8f 100644
--- a/Polymorphism/MathExpression/main.hpp
+++ b/Polymorphism/MathExpression/main.hpp
@@ -1,6 +1,9 @@
#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);
@@ -17,4 +20,24 @@ int main()
-} \ No newline at end of file
+}
+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);
+ //гледаме дали знаците на опрациите съвпадат, дали левите страни съвпадат и дали десните страни съвпадат.
+ }
+
+}