C++编程:引用的本质与使用规则

需积分: 11 8 下载量 120 浏览量 更新于2024-08-23 收藏 1.18MB PPT 举报
"这篇资料是关于C++程序设计的教程,由闫会昌主讲,内容涵盖面向对象程序设计概述、C++基础、类和对象的使用以及派生类与继承。课程强调了引用作为隐式指针的概念,并介绍了C++的一些关键特性,如I/O流、const修饰符、函数重载、动态内存管理和友元等。" 在C++中,引用实际上是一种特殊的指针,它提供了一种安全且无须解引用的方式来访问和修改变量。与传统指针不同,引用一旦初始化后就不能改变引用的对象,即一旦引用被绑定到一个变量,它就始终指向该变量,不能重新赋值为其他变量的地址。例如: ```cpp int i = 15; int *iptr = &i; // 普通指针,iptr可以改变指向 int &rptr = i; // 引用,rptr总是指向i ``` 在例2.18中,尝试将引用`j`绑定到另一个变量`k`是错误的,因为引用不能重新赋值: ```cpp int i, k; int &j = i; j = &k; // 错误,引用不能重新绑定 ``` 此外,引用有一些限制,比如不能建立引用数组、不能建立指向引用的指针,也不能建立引用的引用。这体现了引用的固定性: ```cpp int &b[3]; // 不能建立引用数组 int &*p; // 不能建立指向引用的指针 int &&r; // 不能建立引用的引用 ``` 尽管如此,引用仍然可以像指针一样获取对象的地址,如下所示: ```cpp int num = 50; int &ref = num; int *p = &ref; // 等同于 int *p = # ``` 在C++中,引用的这些特性使得它们成为编写函数和方法的有力工具,特别是当需要传递对象本身而不是副本时,或者在需要保证不为空的指针时。例如,构造函数和析构函数常用于对象生命周期的管理,而友元机制则允许类之间的非成员函数访问私有或保护成员,增强了代码的灵活性。 课程还涵盖了C++的其他重要概念,如面向对象程序设计的基本理念,包括数据抽象、封装、继承和多态性。面向对象编程通过类和对象来模拟现实世界的问题,数据抽象和封装确保了数据的安全,继承允许创建基于现有类的新类,多态性则让不同的对象能够对同一消息做出响应。C++中的流库改进了输入/输出操作,const关键字用于定义不可修改的变量,函数重载则允许根据参数列表的不同使用相同的函数名。 此外,课程还涉及了如何在Visual C++ 6.0环境中进行C++程序的开发,包括创建新工程、编写代码、编译、连接和运行程序的步骤。这对于实际编程和项目开发是非常实用的技能。