C++程序设计:基类与派生类对象的交互

需积分: 3 1 下载量 119 浏览量 更新于2024-08-24 收藏 8.82MB PPT 举报
"谭浩强教授的经典C++课程主要介绍了面向对象编程的核心概念,特别是关于基类对象和派生类对象的使用。在C++中,基类是派生类的父类,派生类继承了基类的属性和方法。课程中提到了如何声明和使用基类指针来操作派生类对象,这是C++多态性的基础。 在示例代码中,`Base`是基类,`Derive`是派生自`Base`的派生类。首先创建了基类`Base`的对象`b`和派生类`Derive`的对象`d`。接着,定义了一个基类指针`basep`,并首先让它指向基类对象`b`。通过`basep`调用`Show()`函数,此时调用的是基类中的`Show()`。 然后,指针`basep`被赋值为派生类对象`d`的地址。由于`Show()`在基类中被声明为虚函数(`virtual`),这意味着即使`basep`是一个基类指针,调用`Show()`时会根据实际指向的对象类型(这里是派生类`Derive`)来确定调用哪个版本的`Show()`。这就是C++的动态绑定或多态性。 此外,课程还强调了在基类中声明虚函数的重要性。如果没有声明`Show()`为虚函数,当`basep`指向派生类对象时,调用`Show()`仍然只会执行基类的版本,而不会访问派生类可能重写的新实现。这种特性使得基类指针能够灵活地操作不同类型的对象,增强了代码的可扩展性和复用性。 C++的发展历程也在这段摘要中被提及,C++是从C语言发展而来,保留了C语言的高效性和灵活性,并加入了面向对象的特性。C语言以其结构化、高效的执行效率和良好的可移植性闻名,而C++则在这些基础上增加了类、继承、多态等面向对象编程的关键概念,使其更适合大型系统和复杂应用的开发。 C++语言的主要特点包括: 1. 结构化编程,简洁且灵活,既适合大型系统也适合小型控制程序。 2. 高级语言与汇编语言的结合,提供丰富的运算符和位运算,支持灵活的数据结构。 3. 良好的可移植性,程序可以在不同计算机平台间轻松移植。 4. 语法自由度大,允许高度定制,但对初学者来说学习曲线较陡峭,调试程序相对困难。 这段摘要虽然没有涵盖所有C++的知识点,但它为学习者提供了一个关于C++面向对象编程和基类与派生类之间关系的入门视角,同时也简要回顾了C++语言的历史和发展背景。"