C++面向对象编程:友元成员函数解析

需积分: 14 26 下载量 33 浏览量 更新于2024-08-23 收藏 4.4MB PPT 举报
"C++课程-面向对象编程及何洁月教授讲解友元函数" 在C++编程语言中,友元机制是一种特殊的权限授予方式,它允许一个类的成员函数成为另一个类的友元函数,从而能够访问该类的私有(private)和保护(protected)成员。这种机制打破了封装的界限,但在某些情况下,如为了实现特定的协作或数据管理,它是必要的。 在给出的示例中,`Teacher`类的成员函数`assigGrades()`被声明为`Student`类的友元函数。这意味着`assigGrades()`可以访问`Student`类的私有和保护成员,即使这些成员在通常情况下是不能直接被外部类访问的。具体代码如下: ```cpp class Student; class Teacher { public: void assigGrades(Student &s); protected: int noofStudents; }; class Student { public: friend void Teacher::assigGrades(Student &s); protected: int semesterHours; float gpa; }; void Teacher::assigGrades(Student &s) { s.gpa = 4.0; // 可以直接修改Student的私有成员gpa } ``` 这段代码中,`Teacher`类的`assigGrades()`函数被声明为`Student`的友元,所以它能直接修改传入`Student`对象的`gpa`值。这在实际应用中可能用于教师给学生评分等场景,使得教师类可以安全地修改学生类的内部状态,而无需暴露过多的接口。 在何洁月教授的C++课程中,课程内容涵盖了C++的基础语法、面向对象编程思想以及相关概念。课程分为多个章节,旨在帮助学生建立起计算机程序设计的概念体系,理解并掌握C++语言,包括基本数据类型、控制结构、函数、类与对象等核心概念。 - 第一章概述了计算机程序设计语言的发展和面向对象方法,引导学生进入面向对象的世界。 - 第二章介绍了C++的基础知识,包括数据类型、表达式、输入输出和基本的控制结构,这些都是编写任何程序的基础。 - 第三章深入函数的使用,涵盖函数定义、内联函数、默认参数、重载和模板,这些都是C++中实现模块化和代码复用的关键。 - 第四章重点讲解类与对象,这是面向对象编程的核心,包括构造函数、析构函数、类的组合以及类模板,帮助学生理解如何在C++中创建和使用自定义类型。 - 第五章及以上章节继续深化面向对象的主题,涉及更多的高级特性,如继承、多态、虚函数等,以及面向对象的设计原则。 通过这样的学习,学生将逐步提高编程能力,学会利用C++进行面向对象的程序设计,并为后续更复杂的编程任务打下坚实的基础。