B. 公有继承的基类中的private成员在派生类中仍是private的 C. 私有继承的基类中的public成员在派生类中变成private的 D. 保护继承的基类中的public成员在派生类中变成protected的
C++类体系中,不能被派生类继承的有( )。
A.构造函数 B.虚函数 C.静态成员函数 D.赋值操作函数 拷贝构造函数具有的下列特点中,( )是错误的。
A. 如果一个类中没有定义拷贝构造函数时,系统将自动生成一个默认的 B. 拷贝构造函数只有一个参数,并且是该类对象的引用 C. 拷贝构造函数是一种成员函数 D. 拷贝构造函数的名字不能用类名
下列关于虚基类的描述中,错误的是 ( ) A.使用虚基类可以消除由多继承产生的二义性
B.构造派生类对象时,虚基类的构造函数只被调用一次 C.声明“class B : virtual public A”说明类B为虚基类 D.建立派生类对象时,首先调用虚基类的构造函数 有如下程序
#include
A(int i):r1(i) {}
void print() {cout<
void print() const {cout<
int main(){
A al(2); const A a2(4); al.print();a2.print(); Return 0; }
运行时的输出结果是( )
A.运行时出错 B.E2-C16- C.C4-C1. D.E2-E4- 下列对派生类的描述中,( )是错误的。 A. 一个派生类可以作为另一个派生类的基类 B. 派生类至少有一个基类
C. 派生类的成员除了它自己的成员外,还包含了它的基类成员 D. 派生类中继承的基类成员的访问权限到派生类保持不变 派生类的对象对它的哪一类基类成员是可以访问的?( )
A.公有继承的基类的公有成员 B. 公有继承的基类的保护成员 C. 公有继承的基类的私有成员 D. 保护继承的基类的公有成员 关于多继承二义性的描述,( )是错误的。
A. 派生类的多个基类中存在同名成员时,派生类对这个成员访问可能出现二义性
B. 一个派生类是从具有共同的间接基类的两个基类派生来的,派生类对该公共基类的访问可能出现二义性
C. 解决二义性最常用的方法是作用域运算符对成员进行限定
D. 派生类和它的基类中出现同名函数时,将可能出现二义性 C++类体系中,能被派生类继承的是( )。
A.构造函数 B.虚函数 C.析构函数 D.友元函数 设有基类定义: class Cbase
{ private: int a; protected: int b; public: int c; };
派生类采用何种继承方式可以使成员变量b成为自己的私有成员( ) A. 私有继承 B.保护继承
C. 公有继承 D.私有、保护、公有均可 关于虚函数的描述中,( )是正确的。
A. 虚函数是一个静态成员函数 B. 虚函数是一个非成员函数
C. 虚函数既可以在函数说明时定义,也可以在函数实现时定义 D. 派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型 下列关于动态联编的描述中,错误的是()。 A.动态联编是以虚函数为基础
B.动态联编是运行时确定所调用的函数代码的
C.动态联编调用函数操作是指向对象的指针或对象引用 D.动态联编是在编译时确定操作函数的 下面4个选项中,( )是用来声明虚函数的。
A.virtual B.public C.using D.false 关于纯虚函数和抽象类的描述中,错误的是( )。 A.纯虚函数是一种特殊的虚函数,它没有具体的实现 B.抽象类是指具体纯虚函数的类
C.一个基类中说明有纯虚函数,该基类派生类一定不再是抽象类 D.抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出 编译时的多态性可以通过使用( )获得。
A.虚函数和指针 B.重载函数和析构函数 C.虚函数和对象
三、填写程序运行结果(每小题4分,共20分)以下程序的输出结果为 #include
cout<<”k=”<< k< 下面程序的运行结果为: #include D.虚函数和引用 using namespace std; void main() { int i,j,m=0,n=0; for(i=0;i<2;i++) for(j=0;j<2;j++) if(j>=i) m=1;n++; cout< 执行这个程序段输出字符*的个数是 #include static int c=3; b++;c++; return(a+b+c); } void main( ) {int a=2,I; for(I=0;I<3;I++) cout< 下面程序的运行结果为: #include public: Obj(){i++;} ~Obj(){i--;} static int getVal(){return i;} }; int Obj::i=0; void f (){Obj ob2;cout< Obj*ob3=new Obj;cout< 下面程序运行结束后,k的值为_____。 #include 下面程序的运行结果为: #include class C1{ public: ~C1(){ cout<<1; } }; class C2: public C1{ public: ~C2(){ cout<<2; } }; int main(){ C2 cb2; C1 *cb1; return 0; } 下面程序的运行结果为: #include virtual void funcl(){cout<< “A1”;} void func2(){cout<< “A2”;} }; class B: public A{ public: void func1(){cout<< “B1”;} void func2(){cout<< “B2”;} }; int main(){ A*p=new B; p->funcl(); p->func2(); return 0; 以下程序的输出结果为 #include cout< cout< int add(int x,int y); { return x+y; } 程序的输出结果为 。 #include using namespace std; void main() { int i=0,x=0,y=0; do{ ++i; if(i%2!=0) {x=x+i;i++;} y=y+i++; }while(i<=7); cout<<“x=”< 以下程序的输出结果为 。 int x1=30, x2=40; void main() { int x3=10, x4=20; int sub(int x, int y); } sub(x3, x4); sub(x2, x1); cout< sub(int x, int y) { x1=x; x=y; y=x1; } 以下程序的输出结果为 #include static int k; public: Csample( ); void Display( ); }; int Csample::k=0; Csample::Csample( ) { i=0; k++; } void Csample::Display( ) { cout<<\void main( ) { Csample a,b; a.Display( ); b.Display( ); } 以下程序的输出结果为 。 #include Point(int x1=0,int y1=8){x=x1;y=y1;} ~Point(){cout<<\ }; void main() {Point a; Point b(10,10); } 以下程序的输出结果为 。 #include using namespace std; class A{ public: virtual void funcl(){cout<< “A1”;} void func2(){cout<< “A2”;} }; class B: public A{ public: 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库2012面向对象程序设计试题集(4)在线全文阅读。
相关推荐: