C++编程:理解虚基类与面向对象设计

需积分: 44 1 下载量 137 浏览量 更新于2024-08-24 收藏 4.92MB PPT 举报
"东南大学C++总课件-虚基类举例" 在C++编程中,虚基类(Virtual Base Class)是一种特殊的继承机制,它的主要目的是解决多继承时的二义性问题。在这个例子中,我们看到类B被声明为虚基类,然后类B1和B2分别作为B的虚子类。最后,类C同时继承了B1和B2。 虚基类的使用语法如下: ```cpp class B1 : virtual public B {/*...*/}; class B2 : virtual public B {/*...*/}; ``` 这里的`virtual`关键字表明B1和B2都是B的虚子类。这意味着无论B1和B2通过何种路径(直接或间接)继承B,编译器都会确保它们共享一个公共的B实例,避免了钻石问题(Diamond Problem),即当一个类从两个或多个路径继承了相同的基类时,可能导致对基类成员访问的二义性。 在给定的例子中,类C继承了B1和B2,而B1和B2都继承了虚基类B。因此,尽管B1和B2各自都有一个私有成员`b`,但它们都是来自同一个B实例。所以,以下访问是正确的: ```cpp C cobj; cobj.b; // 访问到的是类B中的b ``` 这说明了即使类C通过两个不同的路径包含了B,也能够正确无误地访问到B的成员变量,避免了二义性。 C++课程的其他部分涵盖了从基础到高级的C++概念,包括: 1. 建立计算机程序设计的基本概念和方法。 2. 学习C++语言的基本语法和语义,理解面向对象编程思想。 3. 提升编程和调试能力,为后续学习打下基础。 4. 介绍C++的简单程序设计,涉及基本数据类型、表达式、输入/输出、控制结构、自定义数据类型等。 5. 学习函数的使用,包括函数定义、内联函数、默认参数、函数重载、函数模板以及系统函数的使用。 6. 深入探讨面向对象编程,如类和对象、构造函数和析构函数、类的组合、类模板以及面向对象的一些标记。 整个课程旨在帮助学生不仅掌握C++语言的基础,而且理解并应用面向对象编程的原则,为学生提供实用的编程技能和深厚的理论基础。