第6章的6.13

作业内容:

  定义一个基类Base,将基类的disp函数定义为虚函数,基类有一个数据成员h,然后派生出两个长方体类和圆柱体类,用指针动态调用虚函数求体积。

个人体会:

  我把基类的数据成员改为私有,结果要在基类另外再加一个get函数,但是我对get函数使用不是很熟悉,所以觉得还是改为保护成员比较简单,但是封装性却不太好了。


编写代码:

# include <iostream>
# include <string>
using namespace std;
class base{
public:
base(double h1)
{
h=h1;
}
virtual void disp()
{}
double get()
{
return h;
}
private:
double h;
};
class cuboid:public base{
public:
cuboid(double h1,double l1,double w1):base(h1)
{
longt=l1;
width=w1;
}
void disp()
{
cout<<"长方体的体积为";
cout<<get()*longt*width<<endl;
}
private:
double longt;
double width;
};
class cylinder:public base{
public:
cylinder(double h1,double r1):base(h1)
{
r=r1;
}
void disp()
{
cout<<"圆柱体的体积为";
cout<<3.14*r*r*get()<<endl;
}
private:
double r;
};
int main()
{
base *pc;
cuboid s(1,2,3);
cylinder y(1,2);
pc=&s;
pc->disp();
pc=&y;
pc->disp();
return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值