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;
}本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 乌班图ip地址配置及远程SSH
- ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
- ¥15 PSPICE制作一个加法器
- ¥15 javaweb项目无法正常跳转
- ¥15 VMBox虚拟机无法访问
- ¥15 skd显示找不到头文件
- ¥15 机器视觉中图片中长度与真实长度的关系
- ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
- ¥15 R语言卸载之后无法重装,显示电脑存在下载某些较大二进制文件行为,怎么办
- ¥15 java 的protected权限 ,问题在注释里