C++复习笔记:友元函数与数据结构解析

需积分: 3 4 下载量 91 浏览量 更新于2024-08-08 收藏 1.94MB PDF 举报
"C++及数据结构复习笔记,适合C++初学者快速复习和应届生笔试面试准备,涵盖C++基本知识和数据结构内容。" 在C++编程中,友元函数是一个重要的特性,它允许指定的函数或类能够访问另一个类的私有和保护成员。这种机制打破了封装的常规,但有时对于实现某些特定的设计是必要的。在描述中,提到了两种类型的友元函数: 1. **将普通函数声明为友元函数**:这指的是不在任何类中的普通全局函数,可以通过friend关键字被一个类声明为友元。这样的函数可以像类的成员一样访问该类的私有和保护成员,但要注意,友元函数并不是类的成员,它有自己的作用域和调用方式。 ```cpp class MyClass { private: int myValue; public: friend void accessPrivate(MyClass &obj); }; void accessPrivate(MyClass &obj) { obj.myValue = 42; // 友元函数可以直接访问myValue } ``` 2. **友元成员函数**:这是另一个类的成员函数,被声明为第一个类的友元。这意味着这个成员函数所在的类有权限访问第一个类的私有和保护成员。 ```cpp class FriendClass { public: void friendFunction(MyClass &obj); }; class MyClass { private: int myValue; public: friend void FriendClass::friendFunction(MyClass &obj); }; void FriendClass::friendFunction(MyClass &obj) { obj.myValue = 100; // 作为友元,可以访问myValue } ``` 在C++数据结构部分,复习笔记涵盖了基础到进阶的主题,包括: - 向量(Vector):C++标准模板库(STL)中的容器,提供了动态数组的功能,可以自动调整大小。 - 列表(List):STL中的双向链表,支持高效插入和删除操作。 - 二叉树:包括二叉搜索树、平衡树(如AVL树和红黑树)等,用于高效地存储和检索数据。 - 图:用于表示对象之间的关系,常用于路径查找和网络问题。 - 排序:包括冒泡排序、选择排序、插入排序、快速排序、归并排序等经典算法,以及STL中的sort函数。 此外,笔记中还强调了C++的其他关键概念,如: - 内存管理:理解堆和栈的区别,以及new和delete操作符的使用。 - 面向对象编程:类、对象、继承、派生、多态和虚函数的概念。 - STL库:迭代器、算法、容器和函数对象的使用。 复习笔记特别适合C++初学者巩固基础知识,同时也适用于应届毕业生准备面试。然而,作者指出,仅仅掌握C++和数据结构是不够的,特别是对于非计算机专业的学生,还需要学习更多的计算机科学基础知识,如算法、操作系统、数据库等,以提升竞争力。作者鼓励读者自我提升,把握时间学习,因为个人的努力才是成功的关键。