C++错误示例:非法声明解析

需积分: 35 2 下载量 21 浏览量 更新于2024-07-14 收藏 8.66MB PPT 举报
在C++面向对象编程中,存在一些非法的声明方式,这些声明违反了C++的语法规则,理解它们有助于避免常见的编程错误。以下是关于几个非法声明的详细解释: 1. **非法数组引用声明**: `int & a[9];` 是非法的,因为不能直接创建数组的引用。在C++中,数组名本身就是引用,所以不需要额外的&符号。试图这样声明实际上意味着试图将整个数组作为引用,这是不允许的。 2. **指向引用的指针声明**: `int & *p;` 也是非法的,因为不能直接建立一个指向引用的指针。在C++中,指针只能指向基本数据类型或者对象的地址,而引用已经隐含了一个对象的引用,所以这样的指针声明没有意义。 3. **引用的引用声明**: `int & &px;` 是另一个无效声明,C++中的引用不能被重引,即不能有一个引用去引用另一个引用。引用一旦绑定到某个变量,就不能改变它的引用目标。 合法的引用声明示例包括: - `int &a = m;` 创建一个引用a,它引用整型变量m。 - `int &x = m;` 或 `int &x = &m;` 声明一个引用x,分别代表原始值或地址。 4. **其他知识点**: - C++起源于B语言和C语言,特别是C语言,由Dennis Ritchie和Brian Kernighan在1972年开发,最初用于UNIX操作系统。C++是对C语言的扩展和改进,引入了面向对象特性,如类、对象、继承、封装和多态等。 - C++语言支持结构化编程,结构清晰,适合大型和小型项目,同时保持灵活性。它融合了高级语言的抽象和低级语言的性能,支持丰富的运算符和数据结构。 - C++程序具有良好的可移植性,因为它的语法结构相对宽松,允许程序员根据需要调整,但也可能导致初学者在调试上遇到挑战,需要理解和掌握语法规则。 学习C++面向对象编程时,应避免这些非法声明,正确理解引用的概念,以及合理利用C++的结构化和面向对象特性,这样才能编写出高效且易于维护的代码。同时,理解C++的发展历史和语言特点,有助于提高编程技能和问题解决能力。