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 测试时创建圆和点对象, 分别用全局函数和成员函数判断点和圆的关系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值