当前位置: 首页 > news >正文

C++学习之类和对象基本概念

目录

1.圆类案例

2.学生类案例

3.封装_C语言下的封装

4.C++语言下的封装

5.封装的访问权限

6.成员私有化

7.立方体案例

8.点和圆关系案例


1.圆类案例

案例需求: 设计一个圆类,求圆的周长? 思考: 求圆的周长需要圆的哪些信息 提示: 周长公式: 2 * π * r

类的设计: C++中将万事万物都抽象成对象,比如你眼前的鼠标、键盘、电脑、显示器、桌子、水杯... 当然一个圆也可以是一个对象,而多个圆可以统称为圆类 在理解时可以把对象理解为具体的东西,将这些具体的东西抽象出来,就是类 圆类设计: 对于求圆周长,我们知道每个圆都有他的半径,这个半径属于圆类的属性,而求周长还是面积,属于一个行为,需要通过公式才能够求出。因此可以设计圆类的属性为半径,行为为求周长

声明类的语法: class + 类名{ } ; 举例:圆类 class Circle { }; 类内的属性和行为:大括号内实现的内容,具体实现如下 class Circle { public:  //访问权限,公共权限 double  getZC( ){  return  2 * 3.14 * m_R; }  //求周长,行为 int m_R; //半径,属性 };

2.学生类案例

案例需求: 设计一个学生类,属性有学生的姓名、学号,类内部可以给学生的姓名和学号赋值,并提供获取学生姓名和学号的方法,以及展示学生整体信息的方法 思考: 设计学生类时有哪些属性、哪些行为

声明学生类: class + Student{ } ; 属性: string m_Name; //学生姓名 int m_Id; //学生学号 行为: void setName(string name){ ... } //设置姓名 string getName(){ ... } //获取姓名 void setId(int Id){ ... } //设置学号 int getId(){ ... } //获取学号 void showInfo(){ ... } //显示学生整体信息 主函数: 创建学生对象、给学生信息赋值、并展示

3.封装_C语言下的封装

案例需求: 设计人的结构体,结构体中有人的姓名属性,设计全局函数personEat,参数为人的结构体指针,函数内部输出人的姓名以及人吃饭的行为。 设计狗的结构体,结构体中有狗的姓名属性,设计全局函数dogEat,参数为狗的结构体指针,函数内部输出狗的姓名以及狗吃饭的行为。 测试函数中创建人和狗分别调用其吃饭的行为

人结构体的设计: struct Person{ char m_Name[64]; }; 人吃饭的行为: personEat(struct Person * p) { ... } 狗结构体的设计: struct Dog{ char m_Name[64]; }; 狗吃饭的行为: dogEat(struct Dog * dog) { ... }

4.C++语言下的封装

案例需求: 设计人的结构体,结构体中有人的姓名属性,还有人吃饭函数,函数内部输出人的姓名以及人吃饭的行为。 设计狗的结构体,结构体中有狗的姓名属性,还有狗吃饭函数,函数内部输出狗的姓名以及狗吃饭的行为。 测试函数中创建人和狗分别调用其吃饭的行为

人结构体的设计: struct Person{ char m_Name[64];   personEat() { ... } }; 狗结构体的设计: struct Dog{ char m_Name[64];   dogEat() { ... } };

5.封装的访问权限

C++中的三种访问权限: public     公共权限 protected     保护权限 private     私有权限 具体区别: public 权限:    类中的成员在类内可以访问,在类外也可以访问 protected 权限:    类中的成员在类内可以访问,在类外不可以访问 private权限:    类中的成员在类内可以访问,在类外不可以访问 注:protected 和private权限的区别,在继承中才可以体现出来,目前的结论的一样的

6.成员私有化

设计一个Person类,其中有三个属性: string m_Name;     //姓名 int m_Age;         //年龄 string m_Idol;     //偶像 将这三个属性进行私有化,然后将姓名设置为可读可写,年龄设置为只读,默认18,偶像设置为只写

7.立方体案例

设计一个Person类,其中有三个属性: string m_Name;     //姓名 int m_Age;         //年龄 string m_Idol;     //偶像 将这三个属性进行私有化,然后将姓名设置为可读可写,年龄设置为只读,默认18,偶像设置为只写

8.点和圆关系案例

需求: 设计一个圆类(Circle),和一个点类(Point),计算点和圆的关系。 假如圆心坐标为x1, y1, 半径为m_R,点的坐标为x2, y2: 点在圆上:(x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) == m_R*m_R 点在圆内:(x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) <   m_R*m_R 点在圆外:(x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) >   m_R*m_R 测试时创建圆和点对象, 分别用全局函数和成员函数判断点和圆的关系

相关文章:

  • 使用vector构造杨辉三角形
  • 深入理解JavaScript中的同步和异步编程模型及应用场景
  • 【#2】介绍第三方库
  • 全面系统梳理多模态LLM对齐算法
  • Shiro学习(一):Shiro介绍和基本使用
  • vue2拦截器 拦截后端返回的数据,并判断是否需要登录
  • 程序化广告行业(32/89):常见广告位类型深度剖析
  • 【大模型基础_毛玉仁】4.2 参数附加方法
  • spring 核心注解整理
  • Windows 和 Linux 操作系统架构对比以及交叉编译
  • 网络华为HCIA+HCIP 交换机
  • ⭐算法OJ⭐连接所有点的最小费用【最小生成树】(C++实现)Min Cost to Connect All Points
  • 申报视频材料要求!第三批南充西充县非物质文化遗产代表性项目(增补)条件时间和申请程序
  • 原生后台GPS位置限制,降低功耗
  • HarmonyOS NEXT图形渲染体系:重新定义移动端视觉体验
  • 中学数学几百年重大错误:将无穷多各异假R误为R——两数集相等的必要条件
  • ABC391题解
  • 笔试专题(三)
  • 26考研——图_图的代码实操(6)
  • uv包简单使用案例
  • 做电影网站哪个服务器好/百度竞价托管一月多少钱
  • 淘宝联盟推广做网站违法/郑州seo代理外包公司
  • 什么网站做家具外贸好呢/免费的个人网页
  • 石家庄个人建网站/鼓楼网站seo搜索引擎优化
  • 真人百家樂网站建设/百度快速排名技术培训教程
  • 网上营销渠道/网站seo关键词