面向对象编程:非法声明与OOP基础概念详解

需积分: 15 0 下载量 10 浏览量 更新于2024-07-12 收藏 5.2MB PPT 举报
在面向对象编程(Object-Oriented Programming, OOP)的课程中,有一些常见的非法声明,例如试图创建数组的引用、指向引用的指针和引用的引用。这些错误的理解体现了OOP语言的一些基本概念和编程规则。 1. **非法声明示例:** - **非法数组引用**:`int & a[9];` 这是试图通过引用间接访问数组元素,但在C++中,数组名本身就是对整个数组的引用,不需要额外的引用类型声明。 - **非法指向引用的指针**:`int & *p;` 这是混淆了指针和引用的概念,C++中不能直接建立指向引用的指针,通常会使用`int*`表示普通指针,`int&`表示引用。 - **非法引用的引用**:`int & &px;` 在C++中,不需要双引用,`int & px` 即可表示引用。 2. **面向对象的基本概念**: - **OOP** (Object-Oriented Programming) 是一种程序设计范式,强调信息的封装、继承和多态性,将数据和对数据的操作封装到具有特定行为的对象中。 - **封装性**:隐藏对象的内部细节,只公开必要的接口,提高代码的安全性和复用性。 - **继承性**:子类可以继承父类的属性和方法,减少代码冗余,支持模块化设计。 - **多态性**:允许不同类型的对象对同一消息做出不同的响应,增强了代码的灵活性。 3. **与结构化程序设计对比**: - **结构化编程(Structured Programming, SP)**:以过程为中心,关注功能分解和逐步求精,但可重用性和扩展性较差。 - **模块化**:结构化程序设计将程序划分为多个独立的模块,每个模块负责一个特定功能,这与OOP中的类相似。 - **数据与过程分离**:结构化编程强调数据结构和处理过程分开,而OOP则更倾向于将数据和操作封装在一起。 4. **实例中的面向过程编程**: - 例如,一个统计正负整数个数的简单例子展示了结构化程序设计的步骤,包括输入数据、处理过程(条件判断增加计数)和输出结果。这种设计依赖于顺序、选择和循环控制结构。 5. **结构化编程的局限性**: - 结构化编程对于复杂问题的处理不够灵活,难以应对大型软件项目的需求。模块间的耦合度较高,可重用性和维护性相对较低。 面向对象编程通过更高级别的抽象和封装机制,提高了程序的灵活性和可维护性,而结构化编程虽然简单易懂,但在处理复杂系统时显得力不从心。学习者应理解这两种方法的优缺点,并根据实际需求选择合适的设计方法。在C++中,避免上述提到的非法声明,有助于更好地实践面向对象编程原则。