#include #include #include #include "abstraction.hpp" #include "implementation.hpp" int main(const int argc, const char * argv[]) { Add *add = new Add; SimpleCalculator adder(add); const int a = 5; const int b = 10; std::cout << "A = " << a << "\nB = " << b << std::endl; std::cout << "\nTesting " << adder.getName() << ".doMath(a, b)...\n"; std::cout << "Result: " << adder.doMath(a, b); auto *sub = new Subtract; SimpleCalculator subtractor(sub); std::cout << "\n\nTesting " << subtractor.getName() << ".doMath(a, b)...\n"; std::cout << "Result: " << subtractor.doMath(a, b); // Testing extension of abstraction std::cout << "\n\nTesting VerboseCalculator.doMath(a, b)...\n"; VerboseCalculator verboseCalculator(add); verboseCalculator.doMath(a, b); }