![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c59b24b96adf400fb390e3e6ac835bfc.png)
#include<bits/stdc++.h>
using namespace std;
class Base{
private:
int x;
int y;
public:
Base(int x,int y)
{
this->x=x;
this->y=y;
}
int getX()
{
return x;
}
int getY()
{
return y;
}
void calculate()
{
cout<<getX()*getY()<<endl;
}
};
class Sub:public Base{
public:
Sub(int x,int y):Base(x,y){}
void calculate()
{
if(getY()==0)
cout<<"Error"<<endl;
else
cout<<getX()/getY()<<endl;
}
};
int main()
{
int x,y,z;
cin>>x;
cin>>y;
Sub sub(x,y);
sub.calculate() ;
return 0;
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c282f1b6c46eb2824b3a9e30d7b14c45.png)
#include<bits/stdc++.h>
using namespace std;
class BaseCalculator{
public:
int m_A;
int m_B;
virtual int getResult()
{
return 0;
}
};
class AddCalculator:public BaseCalculator
{
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;
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/633be5af491de1c68300e1c181425baa.png)
#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 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 getlength() * height * 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;
}