c++ - 数据成员从派生到基本c ++的反向继承
问题描述
大多数代码有 1 个基类、2 个派生类和 2 个虚函数。在第一个虚拟函数中(在第一个派生类中重新定义)我必须输入 2 个值来对它们求和,或者只输入一个值以供以后使用,在第二个虚拟函数中(在第二个派生类中重新定义)我需要输入减去 2 个值,或者只用一个值乘以或除以稍后将使用的值。我在加法或减法时没有问题,问题是当我尝试乘法或除法时。
#include<iostream>
#include<cstring>
using namespace std;
int op;
int oopp;
class base
{
protected:
float a,b,c;
public:
void calculo();
void imprimir();
virtual void datos1(){};
virtual void datos2(){};
};
class derivada1:public base
{
public:
void datos1();
};
class derivada2:public base
{
public:
void datos2();
};
void derivada1::datos1()
{
if(op==1)
{
cout<<"a = ";
cin>>a;
cout<<"b = ";
cin>>b;
}
if(op==3)
{
cout<<"a = ";
cin>>a;
}
}
void derivada2::datos2()
{
if(op==2)
{
cout<<"a = ";
cin>>a;
cout<<"b = ";
cin>>b;
}
if(op==3)
{
cout<<"b = ";
cin>>b;
}
}
void base::calculo()
{
if(op==1)
{
c=a+b;
}
if(op==2)
{
c=a-b;
}
if(op==3)
{
if(oopp==4)
{
c=a*b;
}
if(oopp==5)
{
c=a/b;
}
}
}
void base::imprimir()
{
if(op==1)
{
cout<<"c = "<<c<<endl;
}
if(op==2)
{
cout<<"c = "<<c<<endl;
}
if(op==3)
{
if(oopp==4)
{
cout<<"c = "<<c<<endl;
}
if(oopp==5)
{
cout<<"c = "<<c<<endl;
}
}
}
int main()
{
base *p;
derivada1 a;
derivada2 b;
cout<<"op = ";
cin>>op;
//1 sum
//2 substraction
//3 multiply or divide
switch(op)
{
case 1:
p = &a;
p->datos1();
p->calculo();
p->imprimir();
break;
case 2:
p = &b;
p->datos2();
p->calculo();
p->imprimir();
break;
case 3:
cout<<"oopp = ";
cin>>oopp;
switch(oopp)
{
case 4:
p = &a;
p->datos1();
p = &b;
p->datos2();
p->calculo();
p->imprimir();
break;
case 5:
p = &a;
p->datos1();
p = &b;
p->datos2();
p->calculo();
p->imprimir();
break;
default:
cout<<"bye!"<<endl;
break;
}
default:
cout<<"bye!"<<endl;
break;
}
}
抱歉,如果代码太多,我尽量减少它
解决方案
推荐阅读
- java - 当我尝试创建我的 Android 项目时显示错误
- c++ - 为什么是 numeric_limits
::max() 不等于 -1? - java - 编写正确的 jUnit 测试
- c++ - 为什么没有一个 istream get 函数在这个 c 字符串中存储任何东西?
- java - Spring Batch中的执行批处理文件
- python - TypeError:“numpy.bool_”对象不可迭代
- angular - 如何在清晰度模式中将焦点设置在输入字段上
- python - 如何使我的基本 URL 端口号可以针对我的请求 pytest 更改?
- android - 如何在recyclerview不同的项目点击上打开几个不同的片段?
- sql - 检查 Bigquery PartitionTable 中的任何缺失天数记录