面向对象编程:类与访问控制示例
需积分: 9 98 浏览量
更新于2024-07-14
收藏 309KB PPT 举报
"C++中的访问控制和类的使用示例"
在C++中,类是一种用户自定义的数据类型,它允许我们封装数据和相关的操作。在这个例子中,我们看到一个名为`Student`的类,它包含了两个数据成员:`semesHours`(学期小时数)和`gpa`(平均绩点)。类中的成员函数有`Grade()`和`Hours()`,它们分别用于获取`gpa`和`semesHours`的值,以及`AddCourse()`,用于更新学生的平均绩点。
访问控制是C++中类的一个关键特性,它决定了类的成员如何被类内外的代码访问。在这个例子中,`Student`类的`Grade()`和`Hours()`方法被声明为`public`,这意味着在类的外部可以直接调用这些方法。`semesHours`和`gpa`数据成员被声明为`protected`,这使得它们只对类本身及其子类可见,但在类的外部不能直接访问。
在主函数`main()`中,我们创建了一个`Student`类型的对象`s`,并尝试通过`.Grade()`和`.Hours()`访问其成员。`gpa`和`hours`是局部变量,它们与类成员`gpa`和`semesHours`没有关联,因此对局部变量的修改不会影响类对象的状态。尝试直接访问`s.gpa`和`s.Hours()`是非法的,因为它们是`protected`成员,不能在类的外部直接访问。最后,我们调用`s.AddCourse()`来更新学生的学习成绩。
类的定义可以看作是模板或蓝图,而对象是根据这个模板创建的实例。在这个例子中,`Student`类描述了学生的基本属性和行为,而`s`是`Student`类的一个具体实例,它有自己的`semesHours`和`gpa`值。
在C++中,结构体(`struct`)与类(`class`)的主要区别在于默认的访问权限。结构体的成员默认是`public`,而类的成员默认是`private`。然而,除了这一点,它们在功能上是等价的,可以包含数据成员、成员函数、构造函数等。在面向对象编程中,类通常用于实现封装、继承和多态等概念,而结构体则更多地用于简单的数据聚合,但两者可以根据需要互换使用。
总结来说,这个例子展示了C++中访问控制的概念,类的定义和成员函数的使用,以及结构体与类之间的区别。理解这些基本概念对于进行C++的面向对象编程至关重要。
2010-03-16 上传
2013-10-09 上传
2011-06-20 上传
2014-03-21 上传
2013-04-20 上传
626 浏览量
161 浏览量
2008-10-11 上传
2021-07-15 上传
琳琅破碎
- 粉丝: 19
- 资源: 2万+
最新资源
- sicherheit_ws:安全概念讲习班
- Bregman Cookbook:此工具箱提供基于 Bregman Iterations 的信号/图像/3D 处理-matlab开发
- 下一个大学
- fccWebDesign:在此仓库内,有我为在线课程(在freeCodeCamp上进行的响应式Web设计认证)制作的项目
- dchr.host:端到端K8s CICD练习
- 4ampr-fj2021-paginas-web-semana-03:专业人士
- Accuinsight-1.0.36-py2.py3-none-any.whl.zip
- vicms:用于python-flask的迷你内容管理架构
- Atcoder
- Pure
- irawansyahh.github.io:我的个人网站
- ask:一种在 Node 或浏览器中构建 HTTP 请求的简单、可链接的方式
- Dark Crystals New Tab Game Theme-crx插件
- 库存-REST-API:REST APIのテスト
- JavascriptVerletAlgorithm
- antiwasm:Web程序集objdump