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;
}本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥60 pb数据库修改或者求完整pb库存系统,需为pb自带数据库
- ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
- ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
- ¥20 神经网络Sequential name=sequential, built=False
- ¥16 Qphython 用xlrd读取excel报错
- ¥15 单片机学习顺序问题!!
- ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
- ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
- ¥15 相敏解调 matlab
- ¥15 求lingo代码和思路