继承的分文件编写,继承的分文件编写

继承的分文件编写,继承的分文件编写,继承的分文件编写
继承的分文件编写,继承的分文件编写

#include
using namespace std;
// Operation 运算类
class Operation
{
double m_numberA;
double m_numberB;
public:
void SetNumA(double numA)
{
m_numberA = numA;
}
void SetNumB(double numB)
{
m_numberB = numB;
}
double GetNumA()
{
return m_numberA;
}
double GetNumB()
{
return m_numberB;
}
virtual double GetResult() = 0;

};
class OperationAdd : public Operation
{
public:
virtual double GetResult()
{
return GetNumA() + GetNumB();

}

};
class OperationSub : public Operation
{
public:
virtual double GetResult()
{
return GetNumA() - GetNumB();

}

};
class OperationMul : public Operation
{
public:
virtual double GetResult()
{
return GetNumA() * GetNumB();

}

};
class OperationDiv : public Operation
{
public:
virtual double GetResult()
{
if (GetNumB() == 0)
{
cout << "输入错误,除数不可以为零。" << endl;
}
return 0;

}

};
class OperationFactory
{
public:
static Operation* CreateOperate(char oper)
{
Operation poper = NULL;
switch (oper)
{
case '+':
poper = new OperationAdd;
break;
case '-':
poper = new OperationSub;
break;
case '
':
poper = new OperationMul;
break;
case '/':
poper = new OperationDiv;
break;

    }
    return poper;

}

};
void test()
{
cout << "请输入一个数" << endl;
double numA;
cin >> numA;
cout << "请输入一个运算符:" << endl;
char oper;
cin >> oper;
cout << "请输入一个数:" << endl;
double numB;
cin >> numB;
Operation *poper = OperationFactory::CreateOperate(oper);
poper->SetNumA(numA);
poper->SetNumB(numB);
cout << poper->GetNumA() << ' ' << oper << ' ' << poper->GetNumB() << " = " << poper->GetResult() << endl;

}
int main()
{
test();
}#include
using namespace std;
// Operation 运算类
class Operation
{
double m_numberA;
double m_numberB;
public:
void SetNumA(double numA)
{
m_numberA = numA;
}
void SetNumB(double numB)
{
m_numberB = numB;
}
double GetNumA()
{
return m_numberA;
}
double GetNumB()
{
return m_numberB;
}
virtual double GetResult() = 0;

};
class OperationAdd : public Operation
{
public:
virtual double GetResult()
{
return GetNumA() + GetNumB();

}

};
class OperationSub : public Operation
{
public:
virtual double GetResult()
{
return GetNumA() - GetNumB();

}

};
class OperationMul : public Operation
{
public:
virtual double GetResult()
{
return GetNumA() * GetNumB();

}

};
class OperationDiv : public Operation
{
public:
virtual double GetResult()
{
if (GetNumB() == 0)
{
cout << "输入错误,除数不可以为零。" << endl;
}
return 0;

}

};
class OperationFactory
{
public:
static Operation* CreateOperate(char oper)
{
Operation poper = NULL;
switch (oper)
{
case '+':
poper = new OperationAdd;
break;
case '-':
poper = new OperationSub;
break;
case '
':
poper = new OperationMul;
break;
case '/':
poper = new OperationDiv;
break;

    }
    return poper;

}

};
void test()
{
cout << "请输入一个数" << endl;
double numA;
cin >> numA;
cout << "请输入一个运算符:" << endl;
char oper;
cin >> oper;
cout << "请输入一个数:" << endl;
double numB;
cin >> numB;
Operation *poper = OperationFactory::CreateOperate(oper);
poper->SetNumA(numA);
poper->SetNumB(numB);
cout << poper->GetNumA() << ' ' << oper << ' ' << poper->GetNumB() << " = " << poper->GetResult() << endl;

}
int main()
{
test();
}