#include "basecalc.h" BaseCalculator::~BaseCalculator() {} int BaseCalculator::calculate(const Operation& op) { switch(op.type) { case OpType::Addition: result = op.a + op.b; break; case OpType::Subtraction: result = op.a - op.b; break; case OpType::Multiplication: result = op.a * op.b; break; case OpType::Division: result = op.a / op.b; break; case OpType::Modulo: result += op.a % op.b; break; case OpType::Special: result = special(op.a); break; default: result = 0; } return result; } BaseCalculator::operator int() { return result; } int BaseCalculator::negate() { result = -result; return result; } int BaseCalculator::special(int a) { return a * a; }