继承的分文件编写,继承的分文件编写,继承的分文件编写
继承的分文件编写,继承的分文件编写
1条回答 默认 最新
- 「已注销」 2021-07-27 17:37关注
#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();
}解决 1无用
悬赏问题
- ¥15 如何用stata画出文献中常见的安慰剂检验图
- ¥15 c语言链表结构体数据插入
- ¥40 使用MATLAB解答线性代数问题
- ¥15 COCOS的问题COCOS的问题
- ¥15 FPGA-SRIO初始化失败
- ¥15 MapReduce实现倒排索引失败
- ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
- ¥15 找一位技术过硬的游戏pj程序员
- ¥15 matlab生成电测深三层曲线模型代码
- ¥50 随机森林与房贷信用风险模型