C++程序设计解析:派生类与基类的支配规则
需积分: 10 88 浏览量
更新于2024-08-23
收藏 8.66MB PPT 举报
"支配规则-C++程序设计(谭浩强完整版)"
在C++编程中,支配规则(Name Lookup Rules)是指在程序中如何确定标识符(如变量、函数等)的实际引用对象。这一概念在类的继承关系中尤为重要,因为当基类和派生类中有同名成员时,支配规则决定了编译器如何解析这些名称。
1. **基类成员与派生类新增成员的支配**
当派生类中存在与基类同名的数据成员或函数时,如果不使用作用域解析运算符(::)进行明确指定,C++的支配规则将优先考虑派生类中的成员。这种行为被称为重载(Overriding)或隐藏(Hiding)。例如,在描述中的代码`D v; v.x = 5;`,如果`D`是派生类,`x`在基类`A`中也有定义,那么`v.x = 5;`将操作派生类`D`中的`x`,除非基类成员被显式访问。
2. **C++语言的历史和发展**
C++起源于C语言,由Bjarne Stroustrup在1980年代初期为了增加面向对象编程特性而设计。C++不仅保留了C语言的高效性和灵活性,还引入了类、模板、异常处理、命名空间等高级特性。C++的发展经历了多个阶段,逐渐形成了一个完整的、支持多种编程范式的现代编程语言。
3. **C语言的特点**
- **结构化编程**:C语言采用结构化编程思想,支持函数和结构体,使代码组织清晰。
- **混合级语言**:C语言具有高级语言的抽象和汇编语言的低级控制,支持丰富的运算符,包括位运算,使得程序可以直接操作硬件。
- **高度可移植性**:由于C语言的底层特性,编写在一台机器上的C程序可以在其他机器上几乎无需修改就能运行。
- **灵活性与自由度**:C语言的语法相对宽松,这为经验丰富的程序员提供了极大的自由度,但同时也增加了学习曲线和调试难度。
4. **C++的面向对象特性**
C++的面向对象特性包括封装、继承和多态。其中,继承允许派生类继承基类的属性和方法,实现了代码的复用;多态则是通过虚函数和动态绑定实现,使得不同类型的对象可以响应同一消息。
5. **程序设计的挑战**
虽然C++提供了强大的编程能力,但它的灵活性也意味着程序设计者需要对语言规则有深入理解,尤其是在处理继承和多态时,理解支配规则至关重要。对于初学者,调试C++程序可能更具挑战性,因为错误可能不会在编译时立即显现,而是在运行时出现。
总结起来,支配规则是C++中理解和使用继承的关键概念,它规定了在类继承层次结构中如何查找和解析标识符。了解并熟练应用这些规则对于编写有效和可维护的C++代码至关重要。同时,C++作为一门强大的编程语言,其发展历程和特性展示了从C语言到现代面向对象编程语言的演变。
2011-08-27 上传
146 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
eo
- 粉丝: 34
- 资源: 2万+
最新资源
- interview-preparation:我准备接受软件工程师面试的主页
- NVL-HTML-P9a
- es7-module-boilerplate:ES2015ES7模块样板
- 三网码支付系统源码/三网免挂/有PC软件/有云端源码
- mysql代码-多表联查测试
- om-next-starter:一个简单的om-next入门项目,带有一个远程和轮盘观察器
- 学习
- 奥术引擎:3D CC ++游戏引擎-由布雷迪·杰瑟普(Brady Jessup)创建
- 基于bp神经网络变压器气体函数的故障分类代码
- isu-graphics-ggext
- vimhelp:基于Google App Engine的项目,可定期生成Vim帮助文件HTML版本
- akka-elasticsearch:适用于Akka的ElasticSearch扩展
- difficulty:使用单词频率数据评估英语单词难度
- PlatziVideo
- tesseract
- 打卡微信小程序源码附搭建教程.rar