Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //pastebin.com/u/thewhitefang
- //revision class UML
- //Question P2-1 solution
- #include <iostream>
- using namespace std;
- class Info
- {
- public:
- int m_X;
- int m_Y;
- };
- //interface class
- class ICalculator
- {
- public:
- virtual int Calculate(Info input)=0;
- };
- class Adder : public ICalculator{
- public:
- int Calculate(Info input)
- {
- int temp;
- temp = input.m_X + input.m_Y;
- return temp;
- }
- };
- class Multiplier : public ICalculator{
- public:
- int Calculate(Info input)
- {
- int temp;
- temp = input.m_X*input.m_Y;
- return temp;
- }
- };
- class Problem
- {
- private:
- Info m_Param;
- ICalculator* m_pCalculator;
- public:
- void SetAttributes(Info inParam)
- {
- m_Param = inParam;
- }
- void SetCalculator(ICalculator* pIn)
- {
- m_pCalculator = pIn;
- }
- int Calculate()
- {
- return m_pCalculator->Calculate(m_Param);
- }
- };
- int main(){
- Info obj;
- Problem obj2;
- /*int x, y;
- cout << "Enter X value";
- cin >> x;
- cout << "Enter Y value: ";
- cin >> y;*/
- obj.m_X = 10;
- obj.m_Y = 33;
- obj2.SetAttributes(obj);//2
- ICalculator *pObj = new Adder();
- obj2.SetCalculator(pObj);
- cout << "Addition Result: "<<obj2.Calculate() <<endl;
- delete pObj;
- pObj = new Multiplier();
- obj2.SetCalculator(pObj);
- cout << "Multiplication Result: "<<obj2.Calculate() <<endl;
- delete pObj;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement