收藏 分销(赏)

面向对象程序设计打印.doc

上传人:精**** 文档编号:3736669 上传时间:2024-07-16 格式:DOC 页数:59 大小:142KB
下载 相关 举报
面向对象程序设计打印.doc_第1页
第1页 / 共59页
面向对象程序设计打印.doc_第2页
第2页 / 共59页
面向对象程序设计打印.doc_第3页
第3页 / 共59页
面向对象程序设计打印.doc_第4页
第4页 / 共59页
面向对象程序设计打印.doc_第5页
第5页 / 共59页
点击查看更多>>
资源描述

1、一、 填空题1.面向对象系统的四个特性分别是抽象性继承性、 封装性和多态性。2.如果一个类至少有一个纯虚函数,那么该类被称为抽象类。3.对于含有对象成员的派生类,其构造函数的执行顺序为: 先执行基类构造函数、 再执行子对象构造函数,最后执行派生类构造函数。4.纯虚函数的声明格式为: virtual函数类型函数名(参数列表)=0;。5.运算符重载依然保持原来的结合性、 优先级和语法结构。6.类型转换函数的作用是将一个类的对象转换成另一类型的数据。7.静态联编支持的多态性称为编译时的多态性,也称静态多态性。8.类中成员的三种访问权限分别是public、 private和protected。9.定义

2、派生类时,系统默认的继承方式是private。10.C+允许在相同的作用域内以相同的名字定义几个不同实现的函数,称这种同一个函数名多种含义的现象为函数重载。11.在C+中,运行时的多态性主要经过虚函数和继承实现。12.在一个函数的定义或声明前加上关键字inline时,该函数就声明为内置函数。13.派生类的成员包括从基类继承来的成员和自己增加的成员两大部分。14.cin称为C+标准输入流。 63.在C+语言中,cout被称为 标准输出流 。15.在C+语言中,用运算符new动态建立对象,用运算符delete撤消对象。16.基类的 构造函数 和 析构函数 不能被派生类继承。17.名称为temp的类

3、的复制构造函数的原型声明语句为temp(consttemp&s);。18.设置友元函数的目的是为了能够访问该类的私有成员和保护成员。19.在C+程序中,静态成员函数主要用来访问静态数据成员。20.类模板是类的抽象,类是类模板的实例。21.拷贝构造函数的形参必须是当前类对象的引用类型。22.进行函数重载时,被重载的同名函数如果都没有用const修饰,则它们的形参个数不同或类型不同或个数和类型都不同。23.在类中必须声明成员函数的原型,成员函数的 实现 部分能够写在类外。24.多态性 是指发出同样的消息被不同类型的对象接收时有可能导致完全不同的行为。25.在已有类的基础上新增自己的特性而产生新类的

4、过程称为 派生。26.当用类的一个对象去初始化该类的另一个对象时系统自动调用 复制构造函数 实现赋值。27.友元函数是在类声明中由关键字friend修饰说明的非成员函数,在它的函数体中能够经过对象名访问private和protected成员。28.如果需要在某个类的声明之前,引用该类,则应进行 前向引用 声明。29.对象 是将数据及对数据的操作方法封装在一起,作为一个相互依存、 不可分离的整体。30.C+中输出数据时,在标准输出流对象cout之后使用的运算符”。45.若要实现两个复数类对象相加运算,而且满足交换律,要将”+”重载为类的 友元函数 。46.面向对象技术强调软件的可重用性,C+语言

5、提供了类的 继承 机制,解决了软件重用问题。47.C+中允许一个派生类同时继承多个基类,这种行为称为 多重继承。48.声明虚基类命令的的一般形式为class 派生类名:virtual 继承方式 基类名。49.只有 公用继承 才是基类真正的子类型。50.动态多态性是在程序运行过程中才动态地确定操作所针正确对象,又称为 运行时的多态性。51.虚函数一定是类的 成员函数。52.静态成员函数 没有this指针。53.类中成员默认的访问属性是private。54.用关键字inline声明的函数称为 内置函数。55.若将两个复数相加运算符”+”重载为类complex的成员函数,且函数的返回值为当前类的对象

6、,其函数的原型声明语句为complex operator+(complex &);。56.若用op代表C+中任意一个允许重载的运算符,其重载函数名为operator op。57.C+中的模板分为 类模板 和 函数模板。58.具有 封装性、 继承性 和 多态性 特点的程序设计称为面向对象的程序设计。59.用已有对象复制一个新对象时要调用 复制构造函数 。60.在基类中将show( 无参数) 声明为返回整型数据的纯虚函数的语句格式为: virtual int show()=0;。61.在派生类中,对基类的继承方式能够有 public、 private和protected。62.将双目运算符重载为某

7、类的成员函数时,该成员函数的左操作数为当前对象( 或*this) ,右操作数为 函数参数。64.若要访问类中的私有成员,除了能够利用成员函数外,还能够采用的 友元函数 的方式。65.定义静态成员函数的目的是为了访问类中的 静态数据成员 。66.要实现运行时的多态性要使用 虚函数 和 继承。67.派生类的成员来自两个途径,一种是派生类中定义的成员,另一种 从基类继承来的成员。68.构造函数 是一种特殊的成员函数,其作用是对类的数据成员进行初始化并执行对象的其它内部管理操作。69.在类中定义和实现的函数称为 成员函数。70.const成员函数 只能引用本类中的数据成员,而不以修改数据成员。71.如

8、果一个类中至少有一个 纯虚函数 ,那么该类被称为抽象类。72.C+中用static声明的对象称为静态对象。73.若有类名为sample,则其复制构造函数的原型声明语句为sample(const sample &);。二、 选择题1设int =10,+=3+%(-3),则=_C_。A.15B. 11C. 14D.122下列运算符,不能重载为友元函数的是_D_。A.、 =B.+、 -、 +、 -C. +=、 -=、 *=、 /=D. =、 ( ) 、 、 -3在C+中,要实现动态联编,必须使用_B_调用虚函数A. 派生类指针B.基类指针C.对象名D.类名4若运算符”被重载为类的成员函数,则表示式o

9、bj1obj2被C+编译器解释为_A_。A. obj1.operator(obj2)B. obj2.operator(obj1)C. operator()D. (obj1,obj2)5对于语句coutendl;中的各个组成部分,下列叙述中错误的是_B_。A.”cout”是一个输出流对象B. ”B. C. -D. 17.已知类A中一个成员函数说明如下: Void set(A &a);其中,A &a的含义是_C_。A.指向类A的指针为aB.将a的地址值赋给变量setC. a是类A的对象引用,用来作为函数set( ) 的形参D. 变量A与a按位相与作为函数set( ) 的参数18.带有虚基类的多层派

10、生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化次数_B_。A.与虚基类下面的派生类个数有关B.一次C.二次D. 多次19.下列函数中,_D_不能重载。A.成员函数B. 非成员函数C.构造函数D.析构函数20.关于动态联编的下列描述中,_A_是错误的。A.动态联编是在编译时确定操作函数的B. 动态联编是以虚函数为基础的C. 动态联编是在运行时确定所调用的函数代码的D.动态联编调用函数操作是用指向对象的指针或对象引用21.下列运算符中,_D_运算符不能重载。A. &B. newC. D. :22.关于虚函数的描述中,_A_是正确的。A.函数基类中说明了虚函数后

11、,派生类中将其对应的函数可不必说明为虚函数B.虚函数是一个非成员函数C. 虚函数是一个static类型的成员D.派生类的虚函数与基类的虚函数具有不同的参数个数和类型23.下面关于对象的描述中,错误的是_D_。A. 对象之间的信息传递是经过消息进行的B.对象是类的实例C.一个类能够定义多个对象D.对象是类的别名24.下述静态数据成员的特性中,_C_是错误的。A.说明静态数据成员时前边要加修饰符staticB.引用静态数据成员时,要在静态数据成员名前加和作用域运算符C.静态数据成员不是所有对象所共用的D.静态数据成员要在类体外进行初始化25.有关类的说法中,不正确的是_D_。A.类是一种用户定义的

12、数据类型B.类中的成员函数能够存取类中的私有数据C.在类中,如果不作特别说明,所有的成员函数均为私有类型D.在类中,如果不作特别说明,所有的数据成员均为公有类型26.当一个派生类私有继承一个基类时,基类中的所有公有成员和保护成员成为派生类的_C_。A. public成员B. protected成员C. private成员D.友元27.有如下类声明: class sample public:int mem;则sample类的成员mem是_B_A公有成员函数B公有数据成员C私有数据成员D私有成员函数28.在C+中,关于设置参数的默认值的描述中,正确的是_A_。A.设置参数默认值时,应该是先设置右边

13、的再设置左边的B.设置参数默认值只能在定义函数时设置C.设置参数默认值时,应该全部参数都设置D.不允许设置参数的默认值29.函数模板的使用,实际上是将函数模板实例化成一个具体的_B_。A.类B.函数C.对象D.模板类30.在多重继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则_A_。A.完全相同B.完全不同C.部分相同,部分不同D.以上都不对31.下面关于对象概念的描述中,_C_是错误的。A.对象是一个状态和操作(或方法)的封装体B.对象代表着正在创立的系统中的一个实体C.对象就是C语言中的结构体变量D.对象之间的信息传递是经过消息进行的32.继承机制的作用是_A_A定

14、义新类B数据封装C数据抽象D信息隐藏33.有关析构函数的说法不正确的是_A_A.析构函数不能是虚函数B.析构函数无任何函数类型C.析构函数没有形参D.析构函数有且只有一个34.友元的作用之一是_C_A.加强类的封装性B.实现数据的隐藏性C.提高程序的运行效率D.增加成员函数的种类35.一般拷贝构造函数的参数是_B_。A.本类对象名B.本类对象的引用名C.本类对象的成员名D.本类对象的指针名36.如果在基类中将show声明为不带返回值的纯虚函数,正确的写法是_C_。A.virtual show()=0;B.virtual void show() ;C.virtual void show()=0;

15、D.void show=0 virtual;37.下面关于友元的描述中,错误的是_A_。A.类与类之间的友元关系能够继承B.一个类的友元类中的成员函数都是这个类的友元函数C.友元函数能够访问该类的私有数据成员D.友元能够提高程序的运行效率38.在C+中,_B_运算符不能重载。A. +B. sizeofC.-D.”被重载为类的友元函数,则表示式obj1obj2被C+编译器解释为_C_。A. (obj1,obj2)B. obj1.operator(obj2)C. operator(obj1,obj2)D. operator()49下面关于友元的描述中,错误的是_C_。A.友元函数能够访问该类的私有

16、数据成员B.友元能够提高程序的运行效率C.类与类之间的友元关系能够继承D.一个类的友元类中的成员函数都是这个类的友元函数50有关构造函数的说法不正确的是_C_。A.构造函数名字和类的名字一样B.构造函数无任何函数类型C.构造函数有且只有一个D.构造函数在说明类的某个对象时自动执行51设n=8,i=4,则赋值运算n%=i+1执行后,n的值是_C_。A. 0B. 1C. 3D. 252在下列选项中,_B_不能作为判定函数重载的依据。A.参数个数B.函数的类型C. 参数的类型D.函数名称53有关虚函数的说法不正确的是_A_。A.静态成员函数能够是虚函数B.只有类的成员函数才能说明为虚函数C.构造函数

17、不能是虚函数D.析构函数能够是虚函数54.派生类的对象对它的基类_D_是能够访问的。A.公有继承的私有成员B.私有继承的公有成员C.公有继承的保护成员D.公有继承的公有成员55.下列关于switch语句的描述中,_A_是正确的。A. switch语句中default子句能够没有,也可有一个B. switch语句中每个语句序列中必须有break语句C. switch语句中default子句只能放在最后D. switch语句中case子句后面的表示式只能是整型表示式56能用友元函数重载的运算符是_D_。A. -B. =C. D. +三、 读程序写结果1.#include using namespa

18、ce std;class pointpublic:point(int i,int j)x=i;y=j;void print()cout (x ,y)endl;void operator+=(point p)x+=p.x;y+=p.y;void operator-=(point p)x-=p.x;y-=p.y;private:int x,y;void main()point p1(2,3),p2(1,4);p1.print();p2.print();p1+=p2;p1.print();p2-=p1;p2.print();运行结果:(2,3)(1,4)(3,7)(-2,-3)2.#includeu

19、sing namespace std;class timerpublic:timer() seconds=0;timer(int t) seconds=t;timer(int min,int sec) seconds=min*60+sec;int gettime() return seconds;private:int seconds;void main()timer a,b(20),c(3,12);coutseconds1=a.gettime()endl;coutseconds2=b.gettime()endl;coutseconds3=c.gettime()endl; 运行结果:secon

20、ds1=0seconds1=20seconds1=1923#include using namespace std;class Apublic:A(int i,int j)a=i;b=j;void move(int x,int y)a+=x;b+=y;void show()cout (a ,b)endl;private:int a,b;class B:public Apublic:B(int i,int j,int k,int l):A(i,j),x(k),y(l)void show()coutx,yendl;void fun()move(3,5);void f1()A:show();priv

21、ate:int x,y;int main()A e(4,6);e.show();B d(1,3,2,5);d.fun();d.A:show();d.B:show();d.f1();system(pause);return 0;运行结果:(4,6)(4,8)2,5(4,8)4.#include using namespace std;class Apublic:A(int i=0)m=i;coutconstructor called.mendl;void set(int i) m=i;void print() const coutm endl;A(const A &s)m=s.m;coutcop

22、yendl;A()coutdestructor called.mendl;private:int m;int main()const int N=7;A my;my=N;my.print();return 0;运行结果:constructor called.0constructor called.7desstructor called.77desstructor called.75.#includeusing namespace std; class Mpublic:M(int a=0,int b=0) x=a;y=b;int getx() return x;int gety() return

23、 y;private:int x,y;int main() M op1(8,6);int i,j;i=op1.getx();j=op1.gety();couti=i,j=jendl;system(pause);return 0;运行结果:i=8,j=66. #include using namespace std;templatevoid myfunc(type1 x,type2 y)coutx,yendl;int main()myfunc(27,program);myfunc(12.23,32u);return 0;运行结果:27, program12.23,327.#include #in

24、clude using namespace std;class Bookint num,price;public:Book(int a=0,int b=0)num=a;price=b;void showMoney()coutsetw(4)num*priceendl;int main() Book b=Book(3,9),Book(2,8),Book(4,7);Book *p;int i;p=b;for(i=0;ishowMoney();system(pause);return 0;运行结果: 27(前面有俩空格) 16(前面有俩空格) 28 (前面有俩空格)8.#includeusing na

25、mespace std;class Point public: Point() X=Y=0; coutFIRST:Default Constructor called.n; Point(int xx,int yy) X=xx; Y=yy; cout SECOND:Constructor called.n; Point() coutTHIRD:Destructor called.n; int GetX() return X; int GetY() return Y;void Move(int x,int y) X=x; Y=y; private: int X,Y;int main() coutS

26、tep One:endl; Point *Ptr1=new Point; delete Ptr1; coutStep Two:endl; Ptr1=new Point(5,6); delete Ptr1; return 0;运行结果:Step One:FIRST:Default Constructor called.THIRD:Destructor called.Step Two:SECOND:Constructor called.THIRD:Destructor called.9#include class Point public: Point(int xx,int yy); Point(

27、); int GetX() return X; int GetY() return Y; private: int X,Y;Point:Point(int xx,int yy) X=xx; Y=yy;cout Constructor called.endl;Point :Point() coutDestructor called.GetX(); coutxendl; return 0;运行结果:Constructor called.1Destructor called.10.#includeusing namespace std;class Teststatic int count;publi

28、c:Test()+count;cout对象数量=countendl;Test()-count;cout对象数量=countendl;int Test:count=0;int main()Test t4;运行结果:对象数量=1对象数量=2对象数量=3对象数量=4对象数量=3对象数量=2对象数量=1对象数量=011.#include using namespace std;int main() int num=2345;long p=1;dop*=num%10;num/=10;while(num);coutp=pendl;return 0;运行结果:p=12012.#includeusing na

29、mespace std; int a=1,2,3,4,5;int & fun(int i)return ai;int main() int i;fun(2)=10;for(i=0;i5;i+)coutai” ”;/” ”中间空2个格coutendl;system(pause); return 0;运行结果:1 2 10 4 5 (中间两个空格)13.#include using namespace std;int n=0;int &f(int m) n+=m;return n;int main() f(3)+=21;coutn=nendl;return 0;运行结果:n=2414#includ

30、e #include using namespace std;class myclasspublic: myclass()coutsetw(4)1; myclass(char c)coutsetw(4)2; myclass()coutsetw(4)3endl;int main()myclass a,p1,*p2;p2=new myclass(X);delete p2; system(pause); return 0;运行结果: 1 1 2 3 (每个数字前面3个空格) 3(每个数字前面3个空格) 3(每个数字前面3个空格)15. #include using namespace std;int

31、 &f1(int n,int s)int &m=sn;return m;int main()int s=1,2,3,4,5,6;f1(2,s)=10;coutf1(2,s)endl;return 0;运行结果:1016.#include using namespace std;class B;class Apublic:A(int i)a=i; friend int F(A &f1,B &f2);private:int a;class Bpublic:B(int i)b=i; friend int F(A &f1,B &f2);private:int b;int F(A &f1,B &f2)r

32、eturn (f1.a+f2.b)*(f1.a-f2.b);int main()A n1(8);B n2(6);coutF(n1,n2)endl;return 0;运行结果:28四、 程序填空1.下面的程序中定义抽象类Base1,利用基类指针作函数形参调用虚函数,以实现动态联编。#include using namespace std;class Base1/(1)基类Base1定义public:virtual void display() const=0;/(2)纯虚函数( 常成员函数) 的定义;class Base2:public Base1/(3)基类Base1的公有派生类Base2定义

33、public:void display() const;void Base2:display() constcout Base2:display() endl;class Derived:public Base2/(4)派生类Derived公有继承Base2public:void display() const;void Derived:display() const cout Derived:display() display();/(6)用基类指针ptr调用虚函数display()int main() Base2 base2; Derived derived;/(7)定义Derived类对象fun(&base2);/(8)用Base2对象的指针调用fun函数fun(&derived); return 0;2.下面的程序是应用普通函数作为类的友元函数,以访问类中的私有成员。#include using

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服