1 题目
多态实现计算器
求面积体积
2 知识点
3 代码
3.1
#include <iostream>
using namespace std;
class BaseCalculator {
public:
int m_A;
int m_B;
virtual int getResult()=0;
};
class AddCalculator : public BaseCalculator {
public:
int getResult(){
return m_A+m_B;
}
};
class SubCalculator : public BaseCalculator {
int getResult(){
return m_A-m_B;
}
};
int main() {
BaseCalculator* cal = new AddCalculator;
cal->m_A = 10;
cal->m_B = 20;
cout << cal->getResult() << endl;
delete cal;
cal = new SubCalculator;
cal->m_A = 20;
cal->m_B = 10;
cout << cal->getResult() << endl;
delete cal;
return 0;
}
3.2
#include<bits/stdc++.h>
using namespace std;
class rectangle{
private:
int length,width;
public:
rectangle(int x,int y){
length=x;
width=y;
}
void set(int x,int y){
length=x;
width=y;
}
int getlength(){
return length;
}
int getwidth(){
return width;
}
virtual int getval(){
return this->length*width;
}
};
class cuboid:public rectangle{
private:
int height;
public:
cuboid(int x,int y,int z):rectangle(x,y){
height=z;
}
int getval(){
return height*rectangle::getlength()*rectangle::getwidth();
}
};
int main(){
int x,y,z;
cin>>x>>y>>z;
cuboid a(x,y,z);
rectangle b(x,y);
rectangle *p=&b;
cout<<p->getval()<<'\n';
p=&a;
cout<<p->getval();
return 0;
}