C++面向对象程序设计:理解虚函数与函数重载

需积分: 14 2 下载量 144 浏览量 更新于2024-08-24 收藏 373KB PPT 举报
"本资源主要涉及C++面向对象程序设计的相关知识,包括类的继承、虚函数的使用以及C++的基本语法如常量声明、函数重载和程序输出等。其中,给出了一道关于类继承和虚函数的程序题,题目要求填充关键字以使程序正确输出2。此外,还提供了几个选择题,涵盖了常量声明、函数重载和程序执行流程等内容的考察。" 在C++中,类的继承允许我们创建一个新类(派生类)从已有的类(基类)派生,从而复用和扩展基类的功能。在给定的程序中,`class B`继承自`class A`,并且两个类都定义了名为`Show`的成员函数。当使用基类指针`A* p`指向派生类对象`B`时,如果没有使用虚函数,调用`p->Show()`会默认调用基类`A`的`Show`函数,输出1。然而,题目中要求输出2,这表明需要使用虚函数机制。在C++中,通过在基类函数声明前添加`virtual`关键字,可以使其成为虚函数,使得在派生类中可以覆盖这个函数。因此,横线处应该填写`virtual`,这样`p->Show()`就会调用派生类`B`的`Show`函数,输出2。 常量在C++中是一个非常重要的概念,它限制了变量的值在程序运行过程中不可更改。在选择题部分,提到了常量的声明和初始化,例如`const int buffer=256;`是正确的,而`const int temp;`没有初始化则是错误的。此外,还讨论了指针与常量的关系,如`const double* point;`定义了一个指向常量的指针,而`double* const pt=new double(5.5);`定义了一个常量指针。 函数重载是C++中的另一个核心特性,允许我们在同一作用域内定义多个同名但参数列表不同的函数。选择题中指出,函数重载不依赖于返回类型,而是依赖于参数列表(包括参数个数和类型)。因此,选项C)的陈述是错误的,因为返回类型不是区分重载函数的关键。 在编程题中,给出了一个简单的程序示例,展示了如何输出字符串。程序`Fun`的两种重载形式展示了如何根据传入参数的不同选择执行不同的函数体。当只传递一个参数时,调用的是接受单个整数参数的`Fun`版本,输出当前`i`的值,然后递增`i`。 这个资源提供了C++编程的基础知识,包括面向对象特性、常量的使用、函数重载以及简单的程序执行逻辑。这些知识点对于理解和编写C++程序至关重要。