首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,被调用的是指针所指的实际对象的虚函数。而非虚函数不支持多态调用。有如下程序; #include <iostream> using namespace std
虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,被调用的是指针所指的实际对象的虚函数。而非虚函数不支持多态调用。有如下程序; #include <iostream> using namespace std
admin
2017-10-17
38
问题
虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,被调用的是指针所指的实际对象的虚函数。而非虚函数不支持多态调用。有如下程序; #include <iostream> using namespace std; class Base { public: virtual void f() {cout<<"f0+";} void g() {cout<<"g0+";} }; class Derived: public Base { public: void f() {cout<<"f+";} void g() {cout<<"g+";} }; int main() { Derived d; Base *p=&d; P->f(); P->g(); return 0; }运行时输出的结果是
选项
A、f+g+
B、f0+g+
C、f+g0+
D、f0+g0+
答案
C
解析
本题考查的知识点是:虚函数与多态性。在题目的主函数中,首先声明了一个派生类对象d,然后声明了一个基类指针p指向它。接着通过该基类指针,分别调用了f()函数和g()函数。由于在基类Base的定义中,f()函数使用了virtual关键字,因此它是虚函数,即具有多态性,所以通过指针p调用的f()是派生类Derived中定义的 f()。而g()不是虚函数,所以通过指针p调用的是Base中定义的g()。由此可见,最终输出的结果是“f+g0+”。故本题应该选择C。
转载请注明原文地址:https://kaotiyun.com/show/cPAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列叙述中正确的是
下面对静态数据成员的描述中,正确的是()
关于多继承二义性的描述中,错误的是()。
结构化程序设计的一种基本方法是()。
如果一个模板声明列出多个参数,则多个参数之间必须使用______隔开,每个参数都必须重复使用关键字______。
若有如下语句#include<iostream.h>voidmain(){intx=3;do{x=x-2cout<<x;{while(!(--x);}则上面程序段
多数运算符既能作为类的成员函数重载,也能作为类的非成员函数重载,但[]运算符只能作为类的______函数重载。
在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的是,
有如下定义:classMA{intvalue;public:MA(intn=0):value(n){}};MA*ta,tb;其中MA类的对象名标识符是______
下列选项中,正确的C++标识符是
随机试题
境内机构原则上可以开立()经常项目外汇账户。
“教学管理”数据库中有学生表、课程表和选课表,为了有效地反映这三张表中数据之间的联系,在创建数据库时应设置()。
社会价值分配的不均衡,是由在生产关系、社会关系以及政治体系中的地位决定的。()
一般情况下,信度系数()的测试工具被视为信度较好。
查找汉字古音韵,一般可利用()等工具书。
第一次提出科学发展观的党的会议是
患者李某的骶尾部皮肤呈紫色,有皮下硬结并出现水疱,以下护理措施正确的是()。
图3中的组合是巴洛克时期哪一种常见的乐队形式?()
思想是客观事物在人脑中___________和___________的反映。
微分方程y’tanx=ylny的通解是_________.
最新回复
(
0
)