c++编译的 计算器
问题是 运行之后为什么 显示的是地址 做运算 我应该怎么改正
c++编译的 计算器 问题是 运行之后为什么 显示的是地址 做运算 我应该怎么改正
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 「已注销」 2021-07-27 09:49关注
#include
using namespace std;
#includeclass calculator
{
public:
void Setnum1(int num1)
{
m_num1 = num1;
}
int Getnum1(void) const
{
return m_num1;
}
void Setnum2(int num2)
{
m_num2 = num2;
}
int Getnum2(void) const
{
return m_num2;
}virtual int GetResult() = 0; int m_num1; int m_num2;
};
//加
class add :public calculator
{
public:
int GetResult()
{
return Getnum1() + Getnum2();
}
};//减
class sub :public calculator
{
public:
int GetResult()
{
return Getnum1() - Getnum2();
}
};//乘
class mul :public calculator
{
public:
int GetResult()
{
return Getnum1() * Getnum2();
}
};//除
class divi :public calculator
{
public:
int GetResult()
{
if (Getnum2() == 0)
{
cout << "除数不可以为零。" << endl;
}else { return Getnum1() / Getnum2(); } }
};
class calculatorFactory
{
public:
static calculator* Create(char oper)
{
calculator poper = NULL;
switch (oper)
{
case '+':
poper = new add;
break;
case '-':
poper = new sub;
break;
case '':
poper = new mul;
break;
case '/':
poper = new divi;
break;} return poper; }
};
int main()
{
cout << "请输入一个数字。"<<endl;
int num1;
cin >> num1;
cout << "输入运算符。" << endl;
char oper;
cin >> oper;
cout << "请输入一个数字。" << endl;
int num2;
cin >> num2;
calculator *poper = calculatorFactory::Create(oper);
poper->Setnum1(num1);
poper->Setnum2(num2);
cout << poper->Getnum1() << ' ' << oper << ' ' <Getnum2() << "=" << poper->GetResult() << endl;
system("pause");
return 0;
}本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报