记录学习日常 代码可能有错 大家多多包涵 有好的建议提出的话 我会开心接纳 初学阶段
有一个类A及其公有派生类B、C、D。类A和main函数的代码已经完成,请根据已有的代码给出上述三个派生类的设计。
(只需要提交这三个类的代码)
程序的开头部分如下:
#include <iostream>
using namespace std;
class A{
int x,y;
public:
A(int a,int b):x(a),y(b){}
int getX()const{return x;}
int getY()const{return y;}
virtual void doSomething()=0;
};
main函数的代码如下:
int main(){
A *ap;
B b(1,2);
C c(3,4);
D d(5,6);
ap=&b;
ap->doSomething();
ap=&c;
ap->doSomething();
ap=&d;
ap->doSomething();
return 0;
}
输出描述
x和y的和是3
x和y的差是-1
x和y的积是30
class B:public A{
int x,y;
public:
B()=default;
B(int x,int y):x(x),y(y),A(x,y){}
void doSomething(){
cout<<"x和y的和是"<<x+y<<endl;
}
};
class C:public A{
int x,y;
public:
C()=default;
C(int x,int y):x(x),y(y),A(x,y){}
void doSomething(){
cout<<"x和y的差是"<<x-y<<endl;
}
};
class D:public A{
int x,y;
public:
D()=default;
D(int x,int y):x(x),y(y),A(x,y){}
void doSomething(){
cout<<"x和y的积是"<<x*y<<endl;
}
};
面向对象编程:派生类实现与多态应用
这篇博客介绍了面向对象编程中的派生类设计,展示了如何创建类A的公有派生类B、C、D。每个派生类重写了抽象基类A的纯虚函数`doSomething()`,分别实现了计算x和y的和、差和积的功能。在main函数中,通过基类指针调用派生类的方法,展示了多态特性。

被折叠的 条评论
为什么被折叠?



