55 lines
862 B
C++
55 lines
862 B
C++
#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;
|
|
}
|