C++派生类与基类同名函数的支配规则

需积分: 11 3 下载量 28 浏览量 更新于2024-08-19 收藏 2.08MB PPT 举报
"这篇资料主要讨论了C++中的派生类如何支配基类的同名函数,以及C++的支配规则。它强调了在派生类和基类中有重名成员时,优先考虑派生类的成员,并通过作用域解析运算符`::`来访问基类的成员。同时,提到了基类成员的访问控制,私有成员在派生类中不可直接访问,而受保护(protected)成员则允许派生类访问。资料还涵盖了C++的基础知识,包括C语言的基本语法、条件语句、循环语句、数组、函数、指针、结构体、运算符,以及C++中的对象和函数概念,特别是对象和预处理的基本概念,以及C++程序的基本结构。" 在C++中,派生类和基类的关系是继承,这使得派生类可以扩展或修改基类的功能。当基类和派生类有同名函数(也称为重载函数)时,C++的支配规则决定了优先使用派生类的版本。这种现象被称为成员隐藏,派生类的成员会遮蔽基类的同名成员。若要访问基类的同名成员,需要使用作用域解析运算符`::`,例如 `base_class::function()`。 私有(private)成员是基类中不可从派生类直接访问的成员,它们只对基类自身和友元类可见。然而,如果希望派生类能够访问基类的一些成员,但又不希望这些成员对其他外部代码开放,可以将这些成员声明为受保护(protected)。这样,受保护的成员在派生类中是可访问的,但不能被类的外部直接访问。 C++语言从C语言发展而来,尽管它们在语法上有许多相似之处,但也存在显著差异。例如,C++引入了面向对象的概念,如类和对象,以及函数原型和命名空间。在C++中,`int x;`这样的声明不仅创建了一个变量,也创建了一个对象。结构体的定义在C++中更加灵活,可以像定义新的数据类型那样使用,如定义一个表示点的结构体`struct point`,之后可以创建点类型的实例。 此外,资料还涵盖了C++的基本语法元素,如条件语句(if-else)、循环语句(for, while)、数组定义、函数定义、指针操作和结构体的使用。理解这些基础知识对于学习C++的派生类和基类关系至关重要。C++程序的基本结构包括预处理器指令、头文件、命名空间、类定义、对象实例化等,这些都是编写C++程序的基础。