在C++中,要实现动态联编,必须使用()调用虚函数。(A)基类指针(B)对象名(C)派生类指针(D)类名
在C++中,要实现动态联编,必须使用()调用虚函数。
(A)基类指针
(B)对象名
(C)派生类指针
(D)类名
在C++中,要实现动态联编,必须使用()调用虚函数。
(A)基类指针
(B)对象名
(C)派生类指针
(D)类名
A.C++的两种联编方式为:静态联编和动态联编。
B.C++支持两种多态性,静态联编所支持的多态性被称为静态多态性,动态联编所支持的多态性被称为动态多态性。
C.函数重载在编译时表现出的多态性是静态多态性,而虚函数则在运行时表现出的多态性是动态多态性。
D.函数模板和类模板的实例化的过程是通过动态联编实现的。
一、填空: 1、含有纯虚函数的类称为______。 2、如果在类中定义了一个成员函数为______,则表明在该继承层次链条的派生类中有可能重新定义这个成员函数的实现,即它可能被派生类的同名函数所覆盖。 3、定义一个函数名为fun, 返回值为int, 没有参数的纯虚函数的定义是_____。 4、如果类包含了一个或多个______ ,则它是抽象类。 5、虚函数必须是类的______ 函数。 6、在面向对象的程序设计中,不同的对象可以调用相同名称的函数并导致完全不同的行为现象称为______ 。 7、成员函数有实函数、虚函数和______3 种。 8、动态联编的多态性由______支持。 9、 C++语言支持的两种多态性分别是______ 的多态性和运行时的多态性。 10、如果一个类至少有个纯虚函数,那么就称该类为______。 11、 抽象类不能定义对象。但可以声明抽象类的______转换类型。 二、选择题: (1)关于动态联编的下列叙述中,错误的是 A. 动态联编是以虚函数为基础的 B. 动态联编运行时确定所调用函数代码 C. 动态联编调用函数操作是指向对象的指针或对象引用 D. 动态联编是在编译时确定操作函数 (2)有以下类定义: class A public: virtual void fl0{ cout<<l; }; void f20{ b : public a public: . f1o{ } 若b为b类对象,p为a类指针,则下列选项正确的是()。 a. 执行: p="&b;" p->f1();语句, 输出3 B. 执行: p=&b; p->f20);语句,输出4 C. 执行: p=&b; p->fl();语句,输出2 D. 执行: p=&b; p->f20);语句,输出1 (3)关于虚函数的描述中,_______是正确的。. A. 虚函数是一个静态成员函数 B. 虚函数是一个非成员函数 C. 虚函数既可以在函数说明时定义,也可以在函数实现时定义 D. 派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型 (4)下面4个选项中,_______是用来声明虚函数的。. A. virtual B. public C. using D. false (5)下列描述中,属于抽象类的性质是________。 A. 可以说明虚函数 B. 可以进行构造函数重载 C. 可以定义友元函数 D. 不能说明其对象 (6)要实现动态联编必须_______。 A. 通过成员名限定来调用虚函数 B. 通过对象名来调用虚函数 C. 通过派生类对象来调用虚函数 D. 通过对象指针或引用来调用虚函数 (7)在类中用来声明虚成员函数的关键字是_______。 A. virtual B. public C. protected D. private (8)以下哪个基类中的成员的数表示纯虚函数________。 A. virtual void t()=0; B. void tt(int)=0; C. virtual void t(int); D. virtual void t(in){ }; 三、编程题: 使用虚函数编写程序求球体和圆柱体的体积及表面积。由于球体和圆柱体都可以看作由圆继承而来,所以可以定义圆类Circle作为基类。在Circle类中定义一个数据成员radius和两个虚函数area()和volume()。由Circle 类派生Sphere类和Column类。在派生类中对虚函数area()和volume()重新定义,分别求球体和圆柱体的体积及表面积。
要实现动态联编,必须通过()调用虚函数。
A.对象指针
B.成员名限定
C.对象名
D.派生类名
A.动态联编是函数联编的一种方式,它是在运行时来选择联编函数的
B.动态联编又可称为动态多态性,它是C++语言中多态性的一种重要形式
C.函数重载和运算符重载都属于动态联编
D.动态联编只是用来选择虚函数的
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!