C++程序设计解析:派生类与基类的支配规则

需积分: 4 13 下载量 8 浏览量 更新于2024-08-23 收藏 8.66MB PPT 举报
"支配规则-C++程序设计(谭浩强完整版)——深入解析C++中的支配规则及其在派生类中的应用" 在C++编程中,支配规则(Overriding Rule)是关于对象成员访问的一个关键概念,尤其涉及到类的继承层次结构。当一个派生类从基类继承,并且在派生类中定义了与基类同名的数据成员或函数时,支配规则决定了如何正确地调用这些成员。谭浩强的《C++程序设计》详细阐述了这一主题,旨在帮助读者理解C++中的继承和多态性。 1. **支配规则**: 当派生类中有新的成员与基类中的成员同名时,C++遵循支配规则来确定访问哪个成员。默认情况下,如果在派生类对象中直接通过成员名访问该成员,将优先调用派生类中的新定义成员,而不是基类中的成员。这种行为称为成员函数的覆盖(Override)或者数据成员的隐藏(Hiding)。 2. **访问基类成员**: 如果需要在派生类中访问被隐藏的基类成员,可以使用作用域解析运算符`::`来明确指定基类的成员,例如 `base_class::member`。这样可以确保即使在派生类中,也能调用基类的原始成员。 3. **派生类与基类的成员**: 派生类新增的成员并不会影响基类的原有成员,它们是两个独立的实体。如果派生类中没有重写基类的某个成员,那么在派生类对象中仍然可以通过基类指针或引用调用基类的成员。 4. **多态性**: 在C++中,动态绑定(Dynamic Binding)或运行时多态性使得能够通过基类指针或引用调用派生类中覆盖的虚函数。这是通过在基类中声明函数为虚函数(`virtual`)来实现的。这样,即使函数名相同,编译器会在运行时根据实际对象的类型选择正确的函数实现。 5. **C++语言的特点**: - 结构化:C++是一种结构化的语言,它的设计强调模块化和代码复用,使得程序易于理解和维护。 - 高级与低级特性结合:C++支持高级语言的抽象和汇编语言的直接硬件操作,提供了丰富的运算符和数据结构。 - 可移植性:C++编写的程序可以在多种平台上运行,只需要极少或无需修改。 - 灵活度:C++允许程序员自由设计程序结构,但也意味着对编程者的技能要求较高,尤其是调试方面。 6. **学习挑战**: 对于初学者,C++的学习曲线可能较为陡峭,因为它的语法相对宽松,导致可能出现不易察觉的错误。然而,一旦掌握了C++的基础和语法规则,编写高效且可维护的代码就变得相对容易。 了解并熟练掌握支配规则是成为C++专业开发者的关键一步,它有助于构建复杂的面向对象系统,并充分利用继承和多态带来的优势。通过谭浩强的教材,读者可以系统地学习和实践这些重要概念。