欢迎来到天天文库
浏览记录
ID:39530434
大小:32.78 KB
页数:16页
时间:2019-07-05
《计算机二级C++整理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、26.虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,被调用的是指针所指的实际对象的虚函数。而非函数不支持多态调用。有如下程序:#includeusingnamespacestd;classBase{public:virtualvoidf(){cout<<"f0+";}voidg(){cout<<"g0+";}};classDerived:publicBase{public:voidf(){cout<<"f+";}voidg(){cout<<"g+";}};intmain(){Derivedd;Base
2、*p=&d;p->f();p->g();return0;}运行时输出的结果是______。A、f+g+B、f0+g+C、f+g0+D、f0+g0+本题考查的是多态与虚拟函数。Derived::f()在基类中被定义为虚拟函数,故在执行p->f()时,将根据该指针所指对象的实际类型调用成员函数,而p是指向一个Derived类型的指针,故在调用p->f()时,将调用Derived::f(),输出"f+",对于p->g(),由于g()没有被定义成虚拟函数,将直接依据指针类型调用该成员函数,p是一个Base类的指针,故将调用Base::g(),从而输出"g0+",故本题输
3、出为"f+g0+"。故本题答案为C。14.若有如下类定义:classB{voidfun1(){}protected:doublevar1;public:voidfun2(){}};classD:publicB{protected:voidfun3(){}};已知obj是类D的对象,下列语句中不违反类成员访问控制权限的是______。A、obj.fun1();B、obj.var1;C、obj.fun2();D、obj.fun3()本题考查的是类成员的访问控制。类中提供了3中访问控制权限:公有(public)、私有(private)和保护(protected)。B类
4、中成员定义访问权限为:fun1()为私有,var1为保护,fun2为公共类D公共继承B类结构,继承结构不改变成员权限。因为对象外部调用成员,只能访问(公共)Public权限成员,仅fun2()为Public权限。故本题答案为C。15.已知一程序运行后执行的第一个输出操作是cout<5、。"1234"表示操作的数据,因此前应该有6个*。故本题答案为B。16.有如下程序:#includeusingnamespacestd;classMyClass{public:MyClass(){++count;}~MyClass(){--count;}staticintgetCount(){returncount;}private:staticintcount;};intMyClass::count=0;intmain(){MyClassobj;cout<6、<7、Class指针对象*ptr,这时会执行类MyClass的构造方法MyClass(){++count;}得到count=2,cout<usingnamespacestd;classMyClass{public:MyClass(intx):val(x){}voidPrint()8、const{cout<<
5、。"1234"表示操作的数据,因此前应该有6个*。故本题答案为B。16.有如下程序:#includeusingnamespacestd;classMyClass{public:MyClass(){++count;}~MyClass(){--count;}staticintgetCount(){returncount;}private:staticintcount;};intMyClass::count=0;intmain(){MyClassobj;cout<6、<7、Class指针对象*ptr,这时会执行类MyClass的构造方法MyClass(){++count;}得到count=2,cout<usingnamespacestd;classMyClass{public:MyClass(intx):val(x){}voidPrint()8、const{cout<<
6、<7、Class指针对象*ptr,这时会执行类MyClass的构造方法MyClass(){++count;}得到count=2,cout<usingnamespacestd;classMyClass{public:MyClass(intx):val(x){}voidPrint()8、const{cout<<
7、Class指针对象*ptr,这时会执行类MyClass的构造方法MyClass(){++count;}得到count=2,cout<usingnamespacestd;classMyClass{public:MyClass(intx):val(x){}voidPrint()
8、const{cout<<
此文档下载收益归作者所有