实现一个图形类(Shape),包含受保护成员属性:周长、面积,
公共成员函数:特殊成员函数书写
定义一个圆形类(Circle),继承自图形类,包含私有属性:半径
公共成员函数:特殊成员函数、以及获取周长、获取面积函数
定义一个矩形类(Rect),继承自图形类,包含私有属性:长度、宽度
公共成员函数:特殊成员函数、以及获取周长、获取面积函数
在主函数中,分别实例化圆形类对象以及矩形类对象,并测试相关的成员函数。
代码:
- #include
- using namespace std;
- //定义一个图形类
- class Shape
- {
- protected:
- double peri;
- double area;
- public:
- //无参构造函数
- Shape(){cout<<"无参构造"<
- //有参构造函数
- Shape(double l,double s):peri(l),area(s) {cout<<"有参构造"<
- //析构函数
- ~Shape(){cout<<"析构函数"<
- //输出周长和面积
- };
- //定义一个圆形类
- class Circle:public Shape
- {
- private:
- double rad;
- public:
- //无参构造函数
- Circle() {cout<<"Circle::无参构造"<
- //有参构造函数
- Circle(int r):rad(r)
- {
- cout<<"有参构造"<
- }
-
- //获取圆形周长
- bool Circle_peri()
- {
- peri=2*3.14*rad;
- if(peri>0)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- //获取圆形面积
- bool Circle_area()
- {
- area=3.14*rad*rad;
- if(area>0)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- //输出周长和面积
- void show()
- {
- Circle_peri();
- Circle_area();
- cout<<"周长="<
- cout<<"面积="<
- }
- };
- //定义一个矩形类
- class Rect:public Shape
- {
- private:
- double length;
- double width;
- public:
- //无参构造函数
- Rect() {cout<<" Rect::无参构造"<
- //有参构造函数
- Rect(double a,double b):length(a),width(b)
- {
- cout<<"有参构造"<
- }
- //获取矩形周长
- bool Rect_peri()
- {
- peri= length*2+width*2;
- if(peri>0)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- //获取矩形面积
- bool Rect_area()
- {
- area=length*width;
- if(area>0)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- //输出周长和面积
- void show()
- {
- Rect_peri();
- Rect_area();
- cout<<"周长="<
- cout<<"面积="<
- }
- };
-
- int main()
- {
- Circle c1(3);
- c1.show();
- Rect r1(3,4);
- r1.show();
- return 0;
- }
运行结果:


-
相关阅读:
MySQL筑基篇之增删改查
深度学习计算 - GPU
Sikuli 基于图形识别的自动化测试技术
ROS2之spin()函数解析(C++版)
使用Navicat将SQL server数据库导入mysql数据库
PHP些个代码把数据库存储的点播视频和阿里云OSS文件批量下载到本机
大学生数学竞赛题,微积分方面的
latexify-py
Nginx入门到搭建
interview3-微服务与MQ
-
原文地址:https://blog.csdn.net/cwj442257772/article/details/132839842
-
最新文章
-
沪漂五周年了:我越来越迷茫了
Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
MySQL-Seconds_behind_master的精度误差
[MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
Agent OS :五种驯服不确定性的范式
PortSwigger SQL注入LAB11
数据库即时编译JIT
[Begin]AI Learn Data Day 0
深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU