面向对象编程:类与访问控制示例

需积分: 9 0 下载量 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++的面向对象编程至关重要。