#include <string>
#include <exception>
#include <stdexcept>
#include <iostream>
using namespace std;
class Calculator
{
private:
int product;
public:
Calculator (int);
Calculator ();
int who_knows;
string running_string;
int running;
string get_running_string ()
{
return running_string;
}
int get_value ()
{
return running;
}
void add(int first_num, int second_num)
{
running = first_num + second_num;
running_string += (to_string(first_num));
running_string += " + ";
running_string += (to_string(second_num));
running_string += " = ";
running_string += to_string(running);
std::cout << running_string << std::endl;
}
void add(int first_num)
{
running_string = (to_string(running));
running = running + first_num;
running_string += " + ";
running_string += (to_string(first_num));
running_string += " = ";
running_string += to_string(running);
std::cout << running_string << std::endl;
}
void sub(int first_num, int second_num)
{
running = first_num - second_num;
running_string = (to_string(first_num));
running_string += " - ";
running_string += (to_string(second_num));
running_string += " = ";
running_string += to_string(running);
std::cout << running_string << std::endl;
}
void sub(int first_num)
{
running_string = (to_string(running));
running = running - first_num;
running_string += " - ";
running_string += (to_string(first_num));
running_string += " = ";
running_string += to_string(running);
std::cout << running_string << std::endl;
}
void mult(int first_num, int second_num)
{
running = first_num * second_num;
running_string = (to_string(first_num));
running_string += " * ";
running_string += (to_string(second_num));
running_string += " = ";
running_string += to_string(running);
std::cout << running_string << std::endl;
}
void set_product(int value)
{
product = value;
}
int get_sum()
{
return running;
}
};
Calculator::Calculator()
{
who_knows = 0;
}
Calculator::Calculator (int arg)
{
who_knows = arg;
}
Calculator operator* (Calculator one_side, Calculator two_side)
{
int product;
string running_string;
Calculator dummy;
product = one_side.get_sum() * two_side.get_sum();
running_string = (to_string(one_side.get_sum()));
running_string += " * ";
running_string += (to_string(two_side.get_sum()));
running_string += " = ";
running_string += to_string(product);
std::cout << running_string << std::endl;
return dummy;
}
Calculator operator+ (Calculator one_side, Calculator two_side)
{
int product;
string running_string;
Calculator dummy;
product = one_side.get_sum() + two_side.get_sum();
running_string = (to_string(one_side.get_sum()));
running_string += " + ";
running_string += (to_string(two_side.get_sum()));
running_string += " = ";
running_string += to_string(product);
std::cout << running_string << std::endl;
return dummy;
}
Calculator operator- (Calculator one_side, Calculator two_side)
{
int product;
string running_string;
Calculator dummy;
product = one_side.get_sum() - two_side.get_sum();
running_string = (to_string(one_side.get_sum()));
running_string += " - ";
running_string += (to_string(two_side.get_sum()));
running_string += " = ";
running_string += to_string(product);
std::cout << running_string << std::endl;
return dummy;
}
std::ostream &operator<<(std::ostream &os, Calculator const &m) {
return os << "Calculator 1's last Result: " << m.running;
}
int main()
{
Calculator calc1(1), calc2(2);
//Calculator calc1, calc2;
calc1.add(5, -1);
calc1.add(3);
calc1.sub(8, 4);
calc1.sub(1);
calc2.mult(5, 8);
calc1 * calc2;
calc1 + calc2;
calc2 - calc1;
cout << calc1 << std::endl;
return 0;
}