第10章多态性与虚函数
一、单项选择题
1.实现运行时的多态性要使用(D)。
A.重载函数B.构造函数C.析构函数D.虚函数
2.通过运算符重载,可以改变运算符原有的(A)。
A.操作数类型B.操作数个数
C.优先级D.结合性
3.将运算符重载为类成员函数时,其参数表中没有参数,说明该运算符是(B)。
A.不合法的运算符B.一元运算符
C.无操作数的运算符D.二元运算符
4.在重载一个运算符时,其参数表中没有任何参数,说明该运算符是(B)。
A.作为友元函数重载的一元运算符B.作为成员函数重载的一元运算符
C.作为友元函数重载的二元运算符D.作为成员函数重载的二元运算符
5.如果表达式++a中的"++"是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为(D)。
A.a.operator++(1)B.operator++(a)
C.operator++(a,1)D.a.operator++()
6.如果表达式a>=b中的">="是作为非成员函数重载的运算符,则可以等效地表示为(C)。
A.a.operator>=(b)B.b.operator>=(a)
C.operator>=(a,b)D.perator>=(b,a)
7.有如下程序:
#include<iostream>
using namespace std;
class A{
public:
virtual void funl (){cout<<"A1";}
void fun2 (){cout<<"A2";}
};
class B: public A{
public:
void funl (){cout<<"Bl";}
void fun2 (){cout<<"B2";}
};
int main(){
A *p=new B;
p->funl ();
p->fun2();
return 0;
}
程序执行后,输出结果为(C)。
A.A1A2B.A1B2C.B1A2D.B1B2
二、程序分析题
分析下列程序,写出程序的运行结果。
1.#include<iostream>
using namespace std;
java重载class A{
int a;
public:
A():a(5){}
virtual void print()const{cout<<a;}
};
class B: public A{
char b;
public:
B(){b=‘E’;}
void print()const{cout<<b;}
};
void show( A&x){x.print ();}
int main()
{
A d1, *p;
B d2;p=&d2;
d1.print();
d2.print();
p->print();
show(d1);
return 0;
}
5EE5
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论