面向对象程序设计复习精彩试题问题详解_第1页
面向对象程序设计复习精彩试题问题详解_第2页
面向对象程序设计复习精彩试题问题详解_第3页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、语法扩大在C+中用D丨能够实现将参数值带回。a数组b指针 c引用 d上述ABC都可属于不合法调用的考虑函数原型 void test(i nt a,i nt b=7,char *ch="*"),下面的函数调用中, 是:C A) test(5) B)test(5,8)C)test(6,"#")D)test(O,O,"*");:int m=10 ;如下表示引用的方法中,正确的答案是:C A)int &Z ;B)int &t=10 ; C)int &X=m ; D)float &f=&m ;如下不是函数

2、重载所要求的条件是:D A)函数名一样B)参数个数不同C)参数类型不同D)函数返回值类型不同在C+中执行以下4条语句后输出rad值为:(C )static int hot=200 ;int &rad=hot ;hot=hot+100 ;cout<<rad<<endl ;A) 0B) 100C) 300D) 200系统在调用重载函数时,不能作为确定哪个重载函数被调用的依据是:D A)参数个数B)参数类型C)函数名称D)函数的返回值类型对C+语言和C语言的兼容性,描述正确的答案是:A A)C+兼容C B)C+局部兼容 C C)C+不兼容C D)C兼容C+在C+中使用

3、流进展输入输出,其中用于屏幕输出的对象是:C A)cerr B)cin C)cout D)cfile对使用关键字new所开辟的动态存储空间,释放时必须使用C A)free B)create C)delete D)realse在函数调用时,如某一默认参数要指明一个特定值,如此有A A)其之前所有参数都必须赋值B)其之后所有参数都必须赋值C)其前、后所有参数都必须赋值D)其前、后所有参数都不必赋值如下哪个类型函数不适合声明为内联函数A A)函数体语句较多B)函数体语句较少C)函数执行时间较短D)函数执行时间过长int Func(int , int);不可与如下哪个函数构成重载B A)int Fun

4、c(int, int, int) ;B)double Func(int, int);C)double Func(double, double) ;D)double Func(int, double);下面的哪个保存字不能作为函数的返回类型C A)void B)i nt C)new D)lo ng一个函数功能不太复杂,但要求被频繁调用,选用A。A. 内联函数B.重载函数C.递归函数D.嵌套函数函数 f 的原型为:void f (int&a,char*b);变量 s,t 的定义是:int s ; char t ="ABCD";把s和t分别作为第一参数和第二参数来调用函数

5、f,正确的调用语句是 C A f(&s,&t) ; B f(&s,t) ; C f(s,t) ; D f(s,&t);假如定义cin>>str;当输入Microsoft Visual Studio 6.0 !所得结果是str= BA、Microsoft Visual Studio 6.0 !B、MicrosoftC、Microsoft Visual.函数模板C。A、代表某一具体函数B、与模板函数是同一个函数C、与某一个具体的数据类型连用D、是模板函数实例化的结果在C+中,关于如下设置参数默认值的描述中,正确的答案是CA、不允许设置参数的默认值B、设置

6、参数默认值只能在定义函数时设置C、设置参数默认值时,应该是先设置右边的再设置左边的D、设置参数默认值时,应该全部参数都设置 如下表示引用的方法中,A丨是正确的。:k=1000;A、int &x=k;B、char &y;C、int &z=1000;D、float &t=&k;有如下模板定义:template <class T>T fun(T x,T y)return x*x+y*y; 在如下对fun的调用中,错误的答案是:C A) fun(2,8)B)fun(2.0,8.2)C)fun(2.3,8)D)fun (' 2' , &

7、#39; 8')通常情况下,函数模板中的类型参数个数不能是(A )A)0个B)1个C)2个D)3个1、假定有如下定义:int x;,假如要将整型变量 y定义为变量x的引用,如此应使用的定义语句是 int &y=x;。具有一样函数名但具有不同参数表的函数称为重载函数。'2、在进展函数调用时,将把参数的值传递给值参数,把参数的_地址传递给引用参数。3、执行完如下三条语句后,指针变量c指向_b_ 。Int a,b,*c=&a;int *&p=c;p=&b;4、 假设有如下函数定义 :void Fun(int x,int y=100);如此语旬 Fun(

8、5)语句_ Fun(5,100)_等价。5、 在一个C+程序中,每个变量都必须遵循 先定义后使用_的原如此。6、 下面是一个求数组元素之和的程序。主程序中定义并初始化了一个数组,然后计算该数 组各元素之和,并输出结果。函数TotalSum计算数组元素之和。请完成如下程序。#in elude <iostream.h>int Totalsum(i nt array,i nt len) :void mai n()int a5=2,3,6,8,10;_int Total:Total =Totalsum(a,5);cout<<"Sum of array:"&l

9、t;<Total<<e ndl;int Totalsum(i nt array,i nt le n)int sum =0:for(i nt 1=0; l<le n;l+)sum += arrayl:return sum;7、下面的函数Fun未使用中间变量实现了对两个数的交换,请完成如下函数的定义。Void Fu n (int &x,i nt &y)x+ = y;y = _x-y _ :_x = x - y:& 定义一个函数时,假如只允许函数体访问形参的值而不允许修改它的值,如此应把该形参声明为常量_,即在该形参声明的前面加上const_关键字进展

10、修饰。9、在一个函数的定义或声明前加上关键字一inline亠时,该函数就声明为内联函数。A、.内联函数的含义在函数前加上关键字inline说明了一个内联函数, 这使一个函数在程序行里进展代码扩 展而不被调用。这样的好处是减少了函数调用的开销,产生较快的执行速度。 但是由于重复编码会产生较长代码, 所以内联函数通常都非常小。如果一个函数在类说明中定义,如此将自动转换成内联函数而无需用inline说明。B、.函数重载的含义在同一作用域 X围内,一样的函数名通过不同的参数类型或参数个数可以定义几个函 数,编译时编译器能够识别实参的个数和类型来决定该调用哪个具体函数。需要注意的是, 如果两个函数仅仅返

11、回类型不同,如此编译时将会出错,因为返回类型不足以提供足够的信息以使编译程序判断该使用哪个函数。所以函数重载时必须是参数类型或者数量不同。C、引用与指针的区别D、内联函数使用上的限制E、定义带默认参数值函数的规如此F、指针与常量的关系1写出如下程序的运行结果。#in elude <iostream.h>void mai n()int兀int &p=x;x=10;p=x+10; cout<<x<<","<<p<<e ndl;结果:20,202写出如下程序的运行结果。#in clude <iostream

12、.h>int f(int a)return +a;in t g(i nt &a)return +a;void mai n()int m=0,n=0; m+=f(g(m); n+=f(f( n); cout<<"m="<<m<<e ndl; cout<<" n="<<n<<en dl;结果:m=3n=23)写出如下程序的运行结果。#in clude <iostream.h>void Fun()int num=20;cout<<"The F

13、un's num is"< <num <<e ndl;void mai n()int num=10;cout<<"The main's num is "<<num <<e ndl;Fu n();int num=30;cout<<"The Field's num is "<<num <<e ndl; cout<<"The main's num is "<<num <<

14、;e ndl;结果:The mai n's num is 10The Fun's num is20The Field's num is 30The mai n's num is 10类和对象如下的各类函数中,不是类的成员函数。C A)构造函数B)析构函数C)友元函数D)拷贝初始化构造函数作用域运算符“:的功能是:B A)标识作用域的级别的B)指出作用域的X围的C)给定作用域的大小的D)标识成员是属于哪个类的:print()函数是一个类的常成员函数,它无返回值,如下表示中,是正确的。A)void print()const ;B)const void print()

15、;C)void const prin t() :D)void prin t(c on st);在类定义的外部,可以被访问的成员有C A)所有类成员B)private的类成员C)public的类成员D)public或private的类成员关于类和对象不正确的说法是:C B)对象是类的实例D) 一个对象必属于某个类A)类是一种类型,它封装了数据和操作C)一个类的对象只有一个在C+中实现封装是借助于(B )A)枚举 B)类 C)数组D)函数定义析构函数时,应该注意:C A)其名与类名完全一样C)无形参,也不可重载B)返回类型是void类型D)函数体中必须有 delete语句类clase CC1的说明

16、如下,错误的语句是:A clase CC1int a=2 ;/(A)CC1();/(B)public:CC1(int val):/(C)CC1():/(D);类的指针成员的初始化是通过函数完成的,这个函数通常是:(B )A析构函数B)构造函数C)其它成员函数D)友元函数关于构造函数的说法,不正确的答案是:A B)其名与类名完全一样D)没有返回值A)没有定义构造函数时,系统将不会调用它C)它在对象被创建时由系统自动调用 通常拷贝构造函数的参数是:C A)对象名B)对象的成员名C)对象的引用名D)对象的指针名关于成员函数特征的描述中,错误的答案是:A A)成员函数一定是内联函数B)成员函数可以重载

17、C)成员函数可以设置参数的默认值D)成员函数可以是静态的如下关于构造函数的描述中,错误的答案是:D A)构造函数可以设置默认参数;B)构造函数在定义类对象时自动执行C)构造函数可以是内联函数;D)构造函数不可以重载有如下类声明"class Aint x ;如此 A类的成员x是:B A)公有数据成员B)私有数据成员C)公有成员函数D)私有成员函数类TM和类TN是两个独立的类,那么类TM中哪种形式的数据成员一定是不允许的:(C )A)TM * a B)TN & a C)TM a D)TN a ;以下关于this指针的表示中正确的答案是:D A)任何与类相关的函数都有this指针;

18、B)类的成员函数都有this指针;C)类的友员函数都有this指针;D)类的非静态成员函数才有this指针;关于类模板的说法正确的答案是:B A)类模板的主要作用是生成抽象类B)类模板实例化时,编译器将根据给出的模板实参生成一个类C)在类模板中的数据成员具有同样类型D)类模板中的成员函数没有返回值以下关键字不能用来声明类的访问权限的是:C A)public B)private C)static D)protected.类的私有成员可在何处访问D A)通过子类的对象访问B)本类与子类的成员函数中C)通过该类对象访问D)本类的成员函数中.如果没有为一个类定义任何构造函数的情况下,如下描述正确的答案

19、是:AA)编译器总是自动创建一个不带参数的构造函数B)这个类没有构造函数C)这个类不需要构造函数D)该类不能通过编译.一个类可包含析构函数的个数是:BA) 0个B)1个 C)0个或1个 D)0 个或多个 一个类可包含构造函数的个数是:D A) 0个B)0个或1个 C)0 个或多个D)1 个或多个 this指针存在的目的是:BA) 保证基类公有成员在子类中可以被访问B) 保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码C) 保证基类保护成员在子类中可以被访问D) 保证基类私有成员在子类中可以被访问如下关于类的权限的描述错误的答案是:A A) 类本身的成员函数只能访问自身的私有成员B)

20、 类的对象只能访问该类的公有成员C) 普通函数不能直接访问类的公有成员,必须通过对象访问D) 一个类可以将另一个类的对象作为成员设类A将其它类对象作为成员,如此建立A类对象时,如下描述正确的答案是:B A)A类构造函数先执行B)成员构造函数先执行C)两者并行执行D)不能确定.假定有类AB,有相应的构造函数定义,能正确执行“ AB a(4),b(5), c3,*p2=&a,&b'语句,请问执行完此语句后共调用该类构造函数的次数为CA)3B)4C)5D)6拷贝构造函数的作用是A.进展数据类型的转换C.用对象初始化对象C。B.用对象调用成员函数D.用一般类型的数据初始化对象如

21、下静态数据成员的特性中,错误的答案是D。A 静态数据成员的声明以关键字static开头B. 静态数据成员必须在文件作用域内初始化C. 引导数据成员时,要在静态数据成员前加类名和作用域运算符D. 静态数据成员不是类所有对象共享的通过指针访问类对象成员的方法是D。A. :B. ;C. .D.->静态成员函数没有B。A.返回值B. this指针C.指针参数D.返回类型在如下关键字中,用于说明类中公有成员的是A . public ; B. private;C.不是构造函数的特征D。A.构造函数的函数名与类名一样;C.构造函数可以设置缺省参数; 明。是析构函数的特征A。A. 个类中只能定义一个析构

22、函数; C. 析构函数的定义只能在类体内; 参数。关于成员函数特征的下述描述中, A.成员函数一定是内联函数; C.成员函数可以设置参数的缺省值;Aprotected ;A丨是错误的。D. friendB.构造函数可以重载;D.构造函数必须指定类型说B.析构函数名与类名不同;D.析构函数可以有一个或多个B.成员函数可以重载;D.成员函数可以是静态的。下述静态数据成员的特性中,D丨是错误的。A. 说明静态数据成员时前边要加修饰符static<类名和作用域运算符;B. 静态数据成员要在类体外进展初始化;C. 引用静态数据成员时,要在静态数据成员名前加D. 静态数据成员不是所有对象所共用的。1

23、、在撤销类的对象时,C+程序将自动调用该对象的_析构_函数。2、 类中的构造函数是一个特殊的成员函数,它由类的对象自动_调用,它的作用是 _为对象分配内存,数据成员初始化_。3、对类中的成员函数和属性的访问是通过public_ 、protected.和 private_.这3个关键字来控制的。4、delete_运算符删除new运算符所动态分配的内存空间。5、假定用户没有给一个名为MyClass的类定义析构函数,如此系统为其定义的默认析构函数形式为 _MyClass()。6、类中构造函数有一个或多亠个,析构函数有一一_个。7、类是对具有共同属性和行为的一类事物的抽象描述,共同属性被描述为类中的数

24、据成员,共同行为被描述为类中的成员函数。8、假如要把类 FriendClass定义为类 MyClass的友元类,如此应在类 MyClass的定义中参加语句 friend class FriendClass; 。9、 在结构定义中,数据和成员函数默认权限是_public_。在类定义中,数据和成员函数默认权限是 _private。10、 在下面程序的横线处填上适当的语句,使类型该程序执行结果为 10。#in clude <iostream.h>class MyClasspub1ic:MyClass ( int a ) x = a; / 为 x 置值_int GetNum() retur

25、n x: _ _/ 取 x 值private: int x;;void mai n()Myclass my(10);Cout<<my.GetNum()<<e nd;11、完成下面的类定义。Class MyClasspublic:MyClass()x=O;friendint GetNum(MyClassmy);private:int x;int GetNum(MyClassmy)return my. x;12、 _new_运算符对指定类型对象动态分配内存并返回该类型的指针 。13、 假如要把函数 void FriendFunction()定义为类MyClass的友元函数,

26、如此应在类MyClass 的定义中参加语句friend void FriendFunction();。14、类的具体表现是通过定义对象来操作的。15、在定义类的对象时,C+程序将自动调用该对象的构造函数初始化对象自身。16、一般情况下,按照面向对象的要求,把类中的数据成员(属性)定义为private权限,而把成员函数(方法)定义为public 权限。17、在类中定义和实现的函数称为内联函数 。18、非成员函数应声明为类的一友元函数_才能访问这个类的 private成员。A、类的含义B、构造函数的特点C、拷贝构造函数的调用D、析构函数的定义与其特点E、静态成员的分类与各自的特点1)写出如下程序的

27、运行结果。#in clude <iostream.h>class MyClasschar ch;public:MyClass();MyClass(char character); void Prin t();MyClass();MyClass:MyClass()cout<<"This is a con structor!"<<e ndl; ch='a'MyClass:MyClass(char character)cout<<"This is a con structor!"<<e

28、 ndl; ch=character;void MyClass:Pri nt()cout<<"The value of ch is "<<ch<<e ndl;MyClass:MyClass()cout<<"This is a destructor!"<<e ndl;void mai n()MyClass first,seco nd('b');first.Pri nt();sec on d.Pri nt();运行结果:This is a con structor!This is a

29、 con structor!The value of ch is aThe value of ch is bThis is a destructor!This is a destructor!2写出如下程序的运行结果#in clude <iostream.h>class MyClass public: MyClass(); void Prin t(); MyClass(); private: int I; static int j;int MyClass:j=O;MyClass:MyClass()cout<<"This is con structor!&quo

30、t;<<e ndl; j+=10;void MyClass:Pri nt()cout<<"The value of j is" <<J<<e ndl;MyClass:MyClass()cout<<"This is a destructor!"<<e ndl;void mai n()MyClass first,sec ond;first.Prin t();sec on d.Pri nt();This is con structor!This is con structor!The va

31、lue of j is20The value of j is20This is a destructor!This is a destructor!继承与派生.在C+中,类与类之间的继承关系具有C A)自反性B)对称性C)传递性D)反对称性.在公有继承的情况下,基类的成员私有的除外在派生类中的访问权限B A) 受限制B)保持不变C)受保护D)不受保护.按解释中的要求在如下程序划线处填入的正确语句是:C #i nclude <iostream.h>class Basepublic:void fun()cout«"Base:fun"«endl;

32、;class Derived:public Basepublic:void fun() /在此空格处调用基类的函数fun()cout<<"Derived:fun"«endl; ;A) fun() ;B)Base.fun() ; C)Base:fun() ;D)Base->fun();.在保护继承的情况下,基类的成员私有的除外在派生类中的访问权限C A) 受限制B)保持不变C)受保护D)不受保护.下面描述中,表达错误的答案是:B A) 公有继承时,基类中的public成员在派生类中仍是public的B) 公有继承时,基类中的private成员在派生

33、类中仍是private的C) 公有继承时,基类中的protected成员在派生类中仍是protected的D) 私有继承时,基类中的public成员在派生类中是private的.如下虚基类的声明中,正确的答案是:B A)class virtual B: public A B)class B: virtual public AC)class B: public A virtual D)virtual class B: public A.C+设置虚基类的目的是(A )A) 消除二义性B)简化程序C)提高运行效率D)减少目标代码class Xint a;public:X(i nt x=0)a=x;c

34、lass Y:public Xint b;public :Y(i nt x=0,i nt y=0):X(y) b=x;如下语句组中出现语法错误的答案是DA. X *pa=new Y(1,2);B. X a仁丫(1,3);C. Y b1(2,3); X &a3=b1;D. X a4(10);Y b2=a4;class Base public: int i;Base(i nt t) : i ( t );class Derived: protected Base Base b;int j;public:Derived (int t);在构造函数Derived的如下定义中,正确的答案是 (B

35、)A.Derived :Derived(intt):b(t), j(t) B.Derived :Derived(intt):b(t), Base(t), j(t) C.Derived :Derived(intt):Base(t), j(t) D.Derived :Derived(intt):i(t), b(t), j(t) 在哪种派生方式中,派生类可以访问基类中的protected成员B A)public 和 private B)public 、protected 和 privateC)protected 和 private D) 仅 protected在C+中,类与类之间的继承关系具有c A

36、)自反性B)对称性C)传递性D)反对称性如下关于类的继承描述中,A丨是错误的A)派生类可以访问基类的所有数据成员,也能调用基类的所有成员函数B)派生类也是基类,但基类不一定具有派生类的全部属性和方法C)继承描述类的层次关系,派生类可以具有与基类一样的属性和方法D)一个基类可以有多个派生类,一个派生类可以有多个基类当一个派生类仅有 protected继承一个基类时,基类中的所有公有成员成为派生类的 CA)public 成员 B) private 成员C) protected 成员D)友元当一个派生类私有继承一个基类时,基类中的所有公有成员和保护成员成为派生类的BA)public 成员 B) pr

37、ivate 成员C) protected 成员 D)友元不论派生类以何种方法继承基类,都不能使用基类的 BA) public 成员 B) private 成员C) protected 成员 D) public 成员和 protected 成员在创建派生类对象时,构造函数的执行顺序是 DA)对象成员构造函数、基类构造函数、派生类本身的构造函数B)派生类本身的构造函数、基类构造函数、对象成员构造函数C)基类构造函数、派生类本身的构造函数、对象成员构造函数D)基类构造函数、对象成员构造函数、派生类本身的构造函数如下虚基类的声明中,正确的答案是D 。A)class virtual B:public A

38、B)virtual class B:public AC)class B:public A virtualD)class B:virtual public A 下面表示错误的答案是A。A)基类的protected成员在派生类中仍然是protected的B)基类的protected成员在public派生类中仍然是protected的C)基类的protected成员在private派生类中是 private的D)基类的protected成员不能被派生类的对象访问 如下说法中错误的答案是A。A)保护继承时基类中的public成员在派生类中仍是public的B)公有继承时基类中的C)私有继承时基类中的D

39、)保护继承时基类中的private成员在派生类中仍是private的public成员在派生类中是private的public成员在派生类中是 protected的关于多继承二义性的描述中,错误的答案是B。A) 一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二 义性B)解决二义性的最常用的方法是对成员名的限定法C)基类和派生类中同时出现的同名函数,也存在二义性问题D)一个派生类是从两个基类派生出来的,而这两个基类又有一个共同的基类,对该基类成 员进展访问时,可能出现二义性下面表示错误的答案是c。A)派生类可以使用 private派生B)对基类成员的访问必须是无二义性的

40、C)基类成员的访问能力在派生类中维持不变D)赋值兼容规如此也适用于多继承的组合派生类的构造函数的成员初始化列表中,不能包含C。A基类的构造函数B)派生类中子对象的初始化C)基类中子对象的初始化D)派生类中一般数据成员的初始化下面B的表示不符合赋值兼容规如此。A)派生类的对象可以赋值给基类的对象B)基类的对象可以赋值给派生类的对象C)派生类的对象可以初始化基类的引用D)派生类的对象的地址可以赋值给指向基类的指针.如下虚基类的声明中,正确的答案是:B A)class virtual B: public A B)class B: virtual public AC)class B: public A

41、 virtual D)virtual class B: public A.C+设置虚基类的目的是(A )A)消除二义性B)简化程序C)提高运行效率D)减少目标代码1、垂直访问时,保护成员的访问控制权限与公有成员一样。2、利用继承能够实现_代码复用_。这种实现缩短了程序的开发时间,促使开发人员复用 已经测试和调试好的高质量软件。3、派生类对基类的继承有三种方式:public 、 protected禾口private 。4、 多继承情况下,派生类的构造函数的执行顺序取决于一定义派生类时所指定的各基类 的顺序。5、 C+提供的_多继承机制允许一个派生类继承多个基类,即使这些基类是相互无关的。6、派生

42、类可以调用其定义中不具备的数据和操作。7、对基类数据成员的初始化必须在派生类构造函数中的初始化列表 _ 处执行。8、如果类Alpha继承了类Beta,如此类Alpha称为 派生_类,类Beta称为_基_类。9、己知下面的程序框架,按注释中的提示补充细节。#in clude <iostream.h>class pla netprotected:double distanee;/行星距太阳的距离int revolve;/行星的公转周期public:pla net(double d,i nt r)dista nce=d;revolve=r;;class earth:public pla

43、netdouble circumfere nee; /地球绕太阳公转的轨道周长public:/定义构造函数 earth(double d,int r),并计算地球绕太阳公转的轨道周长。earth(double d,i nt r): pla net (d, r)circu mnferen ce=2*d*3.1416;/定义show()函数显示所有信息void show() cout<<" distanee is " << distance<<" miles, revolve is" << revolve<

44、;< days" <<endl; cou<< "circumferenee is << circumference<<endl; ;void mai n()earth ob(9300000,365);ob.show();10、设置虚基类的目的是 为了消除二义性 _,可诵过 _virtual_标识虚基类。11、假如多继承时,多个基类中拥有一个同名的成员,如此一不能用调整访问权限确定对该成员的访问。12、根据基类的定义和测试程序,完成下面派生类的定义。Class Poi ntpublic:Point(int I=0 , in

45、t j=0)X=l;Y=j;void Move(i nt xOff,i nt yOff)X+=xOff;Y+=yOff;int GetX()return X;int GetY()return Y;private:int X,Y;class Recta ngle :private Pointpublic:Rectangle(int x,int y,int w,int h)_:Point(x,y)_W 三 w ; H 三 h ;_ void Move(i nt xOff,i nt yOff)_ Poin tMove(xOff, yOff); int GetX()_return Point:GetX

46、():_ int GetY()return Point:GetY(); int GetW()_return W;_int GetH()_return H; private:int W,H;#in elude <iostream.h>#in clude <math.h>void mai n()Recta ngle rect(1,2,3,4);rect.Move(5,6);cout<< “ The data of rect(X,YW,H):( “<<rect.GetX()<< " <<rect.GetY()<&

47、lt; "“,<<rect.GetW()<< " '<<rect.GetH()<<" <)endl;13、多继承可以视为是单继承的扩展。14、在划线处填上适当的语句,完成如下程序。#in clude <math.h>class Pointpublic:point(double a,double b,double c)X =a: Y=b: Z =c:_ double Getx()return X;double Gety()return Y;double Getz()return Z;priva

48、te:double X, Y;protected:double Z:;class Li ne :publicPoi ntpublic:Lin e(double a ,double b,double c,double d)_:Point(a,b,c)K = d;_void show()cout<<Getx()<<e ndl;cout<<Gety()<<"" <<.<<<endl;cout<<Getz()<<"" <<Z<<endl;

49、cout<<K<<e ndl;private:double k;void mai n()Line obj(1.2,3.4,5.6,7.8);obj.show();15、 类继承中,缺省的继承方式是_private。16、 当用protected继承从基类派生宀个类时,基类的public成员成为派生类的.protected_成员,protected成员成为派生类的protected成员。18、公有派生类的对象可作为 基类的对象处理。19、指向基类的对象的指针变量也可以指向公有派生类的对象。20、类之间的'有'关系代表组合 ,'是“关系代表继承_。A

50、、派生类的定义与其特点B、单继承和多继承的概念与其关系C、继承方式的种类与其各自的特点D、在继承中构造函数和析构函数的调用规如此F、赋值兼容原如此G、类模板和模板类的含义与其关系1、写出如下程序的运行结果。#in clude <iostream.h>class Basepublic:void Who()cout<<"class Base"<<endl;;class Derived1:public Basepublic:void Who()cout<<"class Derived1"<<e ndl

51、;;class Derived2:public Basepublic:void Who()cout<<"class Derived2"<<e ndl;void mai n()Base obj1,*p;Derived1 obj2;Derived2 obj3;p=&objl;p->Who();p=&obj2;p->Who();p=&obj3;p->Who();obj2.Who();obj3.Who();答案:class Baseclass Baseclass Baseclass Derived1class Der

52、ived22、写出如下程序的运行结果。#in clude <iostream.h>class in strume ntpublic:void display() con stcout<<"i nstume nt:display."<<e ndl; ;class pia no:public in strume ntpublic:void display() con stcout<<"pia no:display."<<e ndl;class guitar:public in strume ntpu

53、blic:void display() con stcout<<"guitar:display."<<e ndl;void ton e(i nstrume nt & I)I. display();void mai n()guitar guitar1;ton e(guitar1);pia no pia no1;ton e(pia no1);答案in stume nt:display.in stume nt:display.3、写出如下程序的运行结果。#in elude <iostream.h>class Apublic:A(char

54、 i)cout<<"A's con s."<<i<<e ndl;A()cout<<"A's des."<<endl;class B:virtual public Apublic:B(char i,char j):A(i)b = j; cout<<"B's con s."<<j<<e ndl; B()cout<<"B's des."<<b<<e ndl;p

55、rivate:char b;class C:virtual public Apublic:C(char i,char j):A(i)cout<<"C's con s."<<j<<e ndl;C()cout<<"C's des."<<e ndl;class D:public B,public Cpublic:D(char i,char j,char k,char s,char m,char n):C(k,s),B(i,j),A(i),aa(m)cout<<"D

56、's cons."<<endl; D()cout<<"D's des."<<e ndl;private:A aa;void mai n()D obj('a','b','c','d','e','f);答案:D's cons.D's des.A's des. C's des.B's des. A's des.类的多态性.实现运行时的多态性米用(D)A)重载函数B)构造函数C)析构函数D)虚函数.在派生类中重新定义虚函数时,必须在如下哪方面与基类保持一致。(A )A)参数类型B)参数名字C)操作内容D)赋值.当一个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论