《2022年程序设计二复习题库》由会员分享,可在线阅读,更多相关《2022年程序设计二复习题库(26页珍藏版)》请在金锄头文库上搜索。
1、学而不思则惘,思而不学则殆1C+语言是从早期的C 语言逐渐发展演变而来的。与C 语言相比,它在求解问题方法上进行的最大改进是() 。A、面向过程B、面向对象C、安全性D、复用性2关于构造函数,下列说法不正确的是() 。A、构造函数名字和类名相同B、构造函数在创建对象时自动执行C、构造函数无任何函数返回类型D、构造函数有且只有一个3如果类A 被说明成类B 的友元,则() 。A、类 A 的成员即类B 的成员B、类 B 的成员即类A 的成员C、类 A 的成员函数不得访问类B 的成员D、类 B 不一定是类A 的友元4如果派生类以public 方式继承基类,则原基类的protected 成员和 publ
2、ic 成员在派生类中的访问类型分别是() 。A、public 和 public B、public 和 protected C、protected 和 public D、protected 和 protected5使用派生类的主要原因是() 。A、提高代码的可重用性B、提高程序的运行效率C、加强类的封装性D、实现数据的隐藏6关于虚函数,正确的是() 。A、构造函数不能是虚函数B、析构函数不能是虚函数C、虚函数可以是友元函数D、虚函数可以是静态成员函数7要实现动态链接,派生类中的虚函数() 。A、返回的类型可以与虚函数的原型不同B、参数个数可以与虚函数的原型不同C、参数类型可以与虚函数的原型不同D
3、、以上都不对8在语句cout data;中, cout 是() 。A、变量名B、类名C、对象名D、函数名9有关运算符重载正确的描述是() 。A、C+语言允许在重载运算符时改变运算符的操作数个数B、C+ 语言允许在重载运算符时改变运算符的优先级C、C+ 语言允许在重载运算符时改变运算符的结合性精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 26 页学而不思则惘,思而不学则殆D、C+语言允许在重载运算符时改变运算符的原来的功能10 template T square( T x ) return x*x; 其中 T 是() 。A、函数形参B、
4、函数实参C、模板形参D、模板实参11函数重载是指() 。A、两个或两个以上的函数取相同的函数名,但形参的个数或类型不同B、两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C、两个以上的函数名字不同,但形参的个数或类型相同D、两个以上的函数取相同的函数名,并且函数的返回类型相同12假定 A 类已经定义,对于以A 类为基类的单一继承类B 类,以下定义中正确的是() 。A、class B:public A / ; B、class A:public B/ ; C、class B :public class A/ ; D、class A:class B public/ ; 13下面叙
5、述不正确的是() 。A、派生类一般都用公有派生B、对基类成员的访问必须是无二义性的C、赋值兼容原则也适用于多重继承的组合D、基类的公有成员在派生类中仍然是公有的14 C+ 可以采用动态内存分配在运行时为指针分配内存。下面对一个100 个元素的动态数组进行动态内存分配和释放的是() 。A、int *pi = new int100; delete pi; pi = NULL; B、int *pi = new int(100); delete pi; pi = NULL; C、int *pi = new int(100); delete ( )pi; pi = NULL; D、int *pi = n
6、ew int100; delete pi; pi = NULL; 15下列语句中错误的是() 。A、int *p=new int(100); B、int *p=new int100; C、int *p=new int; D、int *p=new int40(0); 16编写 C+程序一般需经过的几个步骤依次是() 。-装-订-精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 26 页学而不思则惘,思而不学则殆A、编辑、调试、编译、连接B、编辑、编译、连接、运行C、编译、调试、编辑、连接D、编译、编辑、连接、运行17面向对象程序设计将数据与
7、()放在一起,作为一个相互依存、不可分割的整体来处理。A、对数据的操作B、信息C、数据隐藏D、数据抽象18派生类对象可访问基类中的什么成员( )?A、公有继承的公有成员B、公有继承的私有成员C、公有继承的保护成员D、私有继承的共有成员19重载赋值操作符时,应声明为()函数。A、友元B、虚C、成员D、多态20语句 ofstream f( “ SALARY .DAT ” ,ios:appios:binary); 的功能是建立流对象f,试图打开文件 SALARY .DAT 并与之连接,并且() 。A、若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件B、若文件存在,将其置为空文件;若
8、文件不存在,打开失败C、若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D、若文件存在,打开失败;若文件不存在,建立一个新文件21在 C+语言中,自定义的标识符() 。A、能使用关键字并且不区分大小写B、不能使用关键字并且不区分大小写C、能使用关键字并且区分大小写D、不能使用关键字并且区分大小写22对类的构造函数和析构函数描述正确的是() 。A、构造函数可以重载,析构函数不能重载B、构造函数不能重载,析构函数可以重载C、构造函数可以重载,析构函数也可以重载D、构造函数不能重载,析构函数也不能重载3类的析构函数的作用是() 。A、一般成员函数B、类的初始化C、对象初始化D、删除
9、对象。4下面对于友元函数描述正确的是() 。A、友元函数的实现必须在类的内部定义精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 26 页学而不思则惘,思而不学则殆B、友元函数是类的成员C、友元函数破坏了类的封装性和隐藏性D、友元函数不能访问类的私有成员5C+中的类有两种用法:一种是类的实例化,即生成类对象,并参与系统的运行;另一种是通过()派生了新的类。A、复用B、继承C、封装D、引用6下列虚基类的声明中,正确的是()。A、class virtual B:public A B、virtual class B:public A C、cla
10、ss B:public A virtual D、class B: virtual public A 7在每个C+程序中都必须包含有这样一个函数,该函数的函数名为()A、main B、 MAIN C、 name D、 function 8下列有关运算符重载描述正确的是()A、运算符的重载是多态性的一种表现B、C+ 可以通过运算符的重载创造新的运算符C、C+ 中所有运算符都可以作为非成员函数重载D、重载运算符时可以改变其结合性9class Myclass int value; public: Myclass(int n): value(n) int getValue( )const return
11、vlaue; ; 则类的构造函数的个数是()A、1 个B、2 个C、3 个D、4 个10在语句cout data;中, cout 是() 。A、变量名B、类名C、对象名D、函数名11模板的使用是为了() 。A、提高代码的可重用性B、提高代码的运行效率C、加强类的封装性D、实现多态性12若 Fraction 为类重载前增运算符+,应在类体中将其声明为() 。A、Fraction& operator + ( ); B、Fraction& operator + (int); C、friend Fraction& operator + ( ); D、friend Fraction& operator
12、+ (int) 13关于动态存储分配,下列说法正确的是() 。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 26 页学而不思则惘,思而不学则殆A、new 和 delete 是 C+语言中专门用于动态内存分配和释放的函数B、动态分配的内存空间也可以被初始化C、当系统内存不够时会自动回收不再使用的内存单元,因此程序中不必用delete 释放内存空间D、当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用new 14在 C+中用来实现运行时多态性的是() 。A、重载函数B、析构函数C、构造函数D、虚函数15在一个类体的下列声明中,正确的纯虚
13、函数声明是() 。A、 virtual void vf()=0; B、void vf(int)=0; C、virtual int vf(int); D、virtual void vf(int) 1C+语言是从早期的C 语言逐渐发展演变而来的。与C 语言相比,它在求解问题方法上进行的最大改进是。A面向过程B面向对象C安全性D复用性2如果类A 被说明成类B 的友元,则。A类 A 的成员即类B 的成员B类 B 的成员即类A 的成员C类 A 的成员函数不得访问类B 的成员D类 B 不一定是类A 的友元3通过运算符重载,可以改变运算符原有的。A操作数类型B操作数个数C优先级D结合性4下面描述中,表述错误
14、的是。A公有继承时基类中的public 成员在派生类中仍是public 的B公有继承时基类中的private 成员在派生类中仍是private 的C公有继承时基类中的protected 成员在派生类中仍是protected 的D私有继承时基类中的public 成员在派生类中是private 的5下列关于this 指针的描述中,正确的是。A类的非静态成员函数都有this 指针B类的友元函数都有this 指针C任何与类相关的函数都有this 指针D类的成员函数都有this 指针6 假定类 A 已经定义, 对于以类 A 为基类的单一继承B 类,以下定义中正确的是。Aclass B: public A
15、 / ; Bclass A: public B / ;Cclass B: public class A / ; Dclass A: class B public / ;7template 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 26 页学而不思则惘,思而不学则殆T square( T x ) return x*x; 其中 T 是。A函数形参B函数实参C模板形参D模板实参8要实现动态链接,派生类中的虚函数。A返回的类型可以与虚函数的原型不同B参数个数可以与虚函数的原型不同C参数类型可以与虚函数的原型不同D以上都不对9函数重载是指。
16、A两个或两个以上的函数取相同的函数名,但形参的个数或类型不同B两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C两个以上的函数名字不同,但形参的个数或类型相同D两个以上的函数取相同的函数名,并且函数的返回类型相同10C+可以采用动态内存分配在运行时为指针分配内存。下面对一个100 个元素的动态数组进行动态内存分配和释放的是。Aint *pi = new int100; delete pi; pi = NULL; Bint *pi = new int(100); delete pi; pi = NULL; Cint *pi = new int(100); delete ( )
17、pi; pi = NULL; Dint *pi = new int100; delete pi; pi = NULL; 11语句 ofstream f( “ SALARY .DAT ” ,ios:appios:binary); 的功能是建立流对象f,试图打开文件 SALARY.DAT并与之连接,并且。A若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件B若文件存在,将其置为空文件;若文件不存在,打开失败C若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D若文件存在,打开失败;若文件不存在,建立一个新文件12下面对于友元函数描述正确的是。A友元函数的实现必须在类
18、的内部定义B友元函数是类的成员C友元函数破坏了类的封装性和隐藏性D友元函数不能访问类的私有成员13下列虚基类的声明中,正确的是。Aclass virtual B: public A B virtual class B: public A Cclass B: public A virtual D class B: virtual public A 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 26 页学而不思则惘,思而不学则殆14在一个类体的下列声明中,正确的纯虚函数声明是。A virtual void vf( )=0; B void
19、vf(int)=0; C virtual int vf(int); D virtual void vf(int) 15有如下类的定义:class Point private: static int how_many; ; how_many=0; 要初始化 Point 类的静态成员how_many,下划线处应填写。A int Bstatic int C int Point: D static int Point:1、函数重载是指() 。A、两个或两个以上的函数取相同的函数名,但形参的个数或类型不同B、两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C、两个以上的函数名字不同,
20、但形参的个数或类型相同D、两个以上的函数取相同的函数名,并且函数的返回类型相同2、编写 C+程序一般需经过的几个步骤依次是()A、编辑、调试、编译、连接B、编辑、编译、连接、运行C、编译、调试、编辑、连接D、编译、编辑、连接、运行3、在公有派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的A、私有成员B、公有成员()C、保护成员D、保护成员或私有成员4、在类中,正确的纯虚函数声明是()A、virtual void f(int) B、void f(int)=0; C、virtual int f(int); D、virtual void f( )=0; 5、关于 this
21、指针使用说法正确的是()A、保证每个对象拥有自己的数据成员,但共享处理这些数据的代码B、保证基类私有成员在子类中可以被访问。-装-订-线- 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 26 页学而不思则惘,思而不学则殆C、保证基类保护成员在子类中可以被访问。D、保证基类公有成员在子类中可以被访问。6、有如下类的定义:class Point private: static int h; ; h=0; 要初始化Point 类的静态成员h,下划线处应填写()A、 int B、 static int C、 int Point: D、 sta
22、tic int Point: 7、template T fun( T x ) return x+x; 其中 T 是()A、函数形参B、函数实参C、模板形参D、模板实参8、假定类A 已经定义,对于以类A 为基类的单一继承B 类,以下定义中正确的是()A、class B: public A / ; B、class A: public B / ;C、class B: public class A / ; D、class A: class B public / ;9、假定一个类定义如下class Aprivate: int a, b; public:A(int aa, int bb) a=aa-; b
23、=a*bb;则执行 A x(4,5) ;语句后, x.a 和 x.b 的值分别为()A、3 和 15 B、5 和 4 C、4 和 20 D、20 和 5 10、通过运算符重载,可以改变运算符原有的()A、操作数个数B、操作数类型C、优先级D、结合性11、关于虚函数的描述中,()是正确的。A、虚函数是一个static 类型的成员函数B、虚函数是一个非成员函数C、基类中说明了虚函数后,派生类中与其对应的函数可不必说明为虚函数D、派生类的虚函数与基类的虚函数具有不同的参数个数和类型12、如果类A 被说明成类B 的友元,则()精选学习资料 - - - - - - - - - 名师归纳总结 - - -
24、- - - -第 8 页,共 26 页学而不思则惘,思而不学则殆A、类 A 的成员即类B 的成员B、类 B 的成员即类A 的成员C、类 A 的成员函数不得访问类B 的成员D、类 B 不一定是类A 的友元13、下面叙述不正确的是()A、派生类一般都用公有派生B、对基类成员的访问必须是无二义性的C、赋值兼容规则也适用于多重继承的组合D、基类的公有成员在派生类中仍然是公有的14、下列虚基类的声明中,正确的是()A、class B: virtual public A B、 virtual class B: public A C、class B: public A virtual D 、 class v
25、irtual B: public A 15、语句 ofstream f(“ d:article.dat” ,ios:appios:binary); 的功能是建立流对象f,试图打开文件 article.dat 并与之连接,并且()A、若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件B、若文件存在,将其置为空文件;若文件不存在,打开失败C、若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D、若文件存在,打开失败;若文件不存在,建立一个新文件1、构造函数是在()时被执行。A、程序编译B、创建对象C、创建类D、程序装入内存2、使用派生类的主要原因是()A、提高代码的
26、重用性B、提高程序的运行效率C、加强类的封装性D、实现数据的隐藏3、语句 ofstream f( “ d: data.dat” ,ios:appios:binary); 的功能是建立流对象f,试图打开文件data.dat并与之连接,并且()A、若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件B、若文件存在,将其置为空文件;若文件不存在,打开失败C、若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D、若文件存在,打开失败;若文件不存在,建立一个新文件-装-订-线- 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9
27、 页,共 26 页学而不思则惘,思而不学则殆4、在公有派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的A、保护成员B、公有成员()C、私有成员D、保护成员或私有成员5、有如下类的定义:class Rectangle private: static int x; ; x=0; 要初始化Rectangle 类的静态成员x,下划线处应填写()A、 int B、 static int C、 int Rectangle: D、static int Rectangle: 6、template T fun( T x ) return x*x; 其中 T 是()A、函数形参B、模板形
28、参C、函数实参D、模板实参7、假定类A 已经定义,对于以类A 为基类的单一继承B 类,以下定义中正确的是()A、class B: public A / ; B、class A: public B / ;C、class B: public class A / ; D、class A: class B public / ;8、假定一个类定义如下class Aprivate: int a, b; public:A(int aa, int bb):a(aa),b(bb)a+;则执行 A x(7,8) ;语句后, x.a 和 x.b 的值分别为()A、7 和 15 B、7 和 8 C、8 和 7 D、8
29、 和 8 9、如果类A 被说明成类B 的友元,则()A、类 A 的成员即类B 的成员B、类 B 不一定是类A 的友元C、类 A 的成员函数不得访问类B 的成员D、类 B 的成员即类A 的成员10、有关运算符重载正确的描述是()A.C+ 语言允许在重载运算符时改变运算符的操作数个数精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 26 页学而不思则惘,思而不学则殆B. C+ 语言允许在重载运算符时改变运算符的优先级C. C+ 语言允许在重载运算符时改变运算符的结合性D. C+ 语言允许在重载运算符时改变运算符的原来的功能11、面向对象程序
30、设计将数据与()在一起,作为一个相互依存、不可分割的整体来处理A、对数据的操作B、信息C、数据隐藏D、数据抽象12、有关多态性说法不正确的是()A、运行时的多态性可通过模板和虚函数实现B、编译时的多态性可通过函数重载实现C、C+语言的多态性分为编译时的多态性和运行时的多态性D、实现运行时多态性的机制称为动态多态性13、下面叙述不正确的是()A、派生类一般都用公有派生B、对基类成员的访问必须是无二义性的C、赋值兼容规则也适用于多重继承的组合D、基类的公有成员在派生类中仍然是公有的14、友元关系不能()A、提高程序的运行效率B、是类与类的关系C、是一个类的成员函数与另一个类的关系D、继承15、下列
31、语句中错误的是()A、int *pt=new int(100) B、int *pt=new int100 C、int *pt=new int D、 int *pt=new int100(0) 1下面()的叙述不符合赋值兼容规则。A. 派生类的对象可以赋值给基类的对象B. 基类的对象可以赋值给派生类的对象C. 派生类的对象可以初始化基类的对象D. 派生类的对象的地址可以赋值给指向基类的指针2面向对象程序设计思想的主要特征中不包括() 。A. 封装性B. 多态性C. 继承性D. 功能分解,逐步求精-装-订-线-精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - -
32、-第 11 页,共 26 页学而不思则惘,思而不学则殆3. 下面对模板的声明,正确的是() 。A. template B. template C. template D. template 4下列表示引用的方法中,()是正确的。已知: int a=1000; A. int &x=a; B. char &y; C. int &z=1000; D. float &t=&a; 5在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用() 。A. 内联函数B. 重载函数C. 递归调用D. 嵌套调用6下列有关C+类的说法中,不正确的是() 。A. 类是一种用户自定义的数据类型B.
33、 只有类中的成员函数或类的友元函数才能存取类中的私有成员C. 在类中,如果不做特别说明,所有成员的访问权限均为私有的D. 在类中,如果不做特别说明,所有成员的访问权限均为公用的7列语句中,将函数int sum(int x, int y) 正确重载的是() 。A. float sum(int x, int y); B. int sum(int a, int b); C. float sum(float x, float y); D. double sum(int y, int x); 8设置虚基类的目的是() 。A. 简化程序B. 消除二义性C. 提高运行效率D. 减少目标代码9C+是()A.
34、面向对象的程序设计语言B. 面向过程的程序设计语言C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言D. 非结构化的程序设计语言10关于虚函数的描述中,()是正确的。A. 虚函数是一个static 类型的成员函数B. 虚函数是一个非成员函数C. 基类中说明了虚函数后,派生类中与其对应的函数可不必说明为虚函数D. 派生类的虚函数与基类的虚函数具有不同的参数个数和类型二、填空题1 面向对象程序设计是将研究的问题抽象成许多不同的类,类的具体实例称为。2运算符重载时,其函数名由构成。3在类的继承关系中,上层的类称为父类(或基类),下层的类称为。精选学习资料 - - - - - - -
35、- - 名师归纳总结 - - - - - - -第 12 页,共 26 页学而不思则惘,思而不学则殆4C+语言支持两种多态性,即编译时的多态性和时的多态性。5假定 AB 为一个类,则语句AB(AB&x);为该类构造函数的原型说明6定义类的动态对象数组时,系统只能够自动调用该类的构造函数对其进行初始化。7C+标准库中的异常层次的根类为类。8MFC 类库中绝大多数类都源自根类类。9C+支持面向对象程序设计的四个要素是:抽象性、封装性、继承性和。10模板分为模板和函数模板。11常用的C+标准输入流类对象是cin,常用的C+标准输出流类对象是。12 Windows 程序的入口函数是。13 Window
36、s 是应用程序接口的英文简称,它是大量函数加上常量、宏、结构体、类型以及其他相关项的集合。14 当用户在按钮控件上单击了鼠标,则按钮控件会接收到的通知消息是。15用来对控件将要实现的功能进行文字说明或对其他控件中显示的内容进行说明的属性是。1设有定义语句:int a=12; ,则表达式a*=2+3 的运算结果是。2从实现的角度划分,C+所支持的两种多态性分别是时的多态性和运行时的多态性。3C+标准库中的异常层次的根类为类。4支持 cout 和 cin 这两个流对象的内部函数体是在一个名为的头文件中。5对赋值运算符进行重载时,应声明为函数。6类的成员根据其访问权限可分为3 种:公有类型(publ
37、ic) 、私有继承(private)和保护继承( protected) ,其中,类的封装性通过和保护继承( protected)部分体现的。7MFC 类库中绝大多数类都源自根类类。8将 个函数声明为一个类的友元函数必须使用关键字。9C+支持面向对象程序设计的四个要素是:抽象性、继承性和多态性。10模板分为函数模板和模板。1计算机高级语言划分为面向过程的结构化程序设计和两大类型。2类由三部分组成:类名、数据成员和。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 26 页学而不思则惘,思而不学则殆3类成员的访问权限分为:公有的(publi
38、c ) 、保护的( protected)和。4执行语句:int num=10,&ref=num; num+; +ref; 后,变量num 的值为。5在动态内存申请含有10 个 int 型数组元素的连续空间的语句为:int *p= ; 。6C+中的模板分为函数模板和。7在类的对象被创建时,类的构造函数会被自动调用,在类对象被消亡时,类的函数会被自动调用。8在类的继承关系中,上层的类称为基类,下层的类称为。9利用 Visual C+ 开发面向对象Windows 应用程序有两种主要方法:一种是使用Windows提供的函数,另一种是利用Microsoft提供的MFC(Microsoft Foundat
39、ion Class ,微软基础类库)类库。10用户在按钮上单击鼠标的消息名称是。1、C+的流库预定义了4 个流,它们是cin、cout、clog 和。2、在动态内存申请含有10 个 char 型数组元素的连续空间的语句为:char *p= 。3、引发异常的throw 语句必须在语句块内。4、在类的继承关系中,上层的类称为类,下层的类称为派生类。5、执行语句:int num=10,&ref=num; num-; +ref; 后,变量num 的值为。6、类成员的访问权限分为:、保护的( protected)和私有的(private) 。7、假如一个类的名称为MyClass,使用这个类的一个对象初始
40、化该类的另一个对象时,可以调用构造函数来完成此功能。8、MFC 中对话框分为和无模式对话框。9、对赋值运算符进行重载时,应声明为函数。10、 利用 Visual C+ 开发面向对象Windows 应用程序有两种主要方法:一种是使用Windows提供的函数,另一种是利用Microsoft 提供的 MFC(Microsoft Foundation Class ,微软基础类库)类库。1、C+语言异常处理机制的基本思想是将分离。2、在类的继承关系中,上层的类称为类,下层的类称为派生类。3、Windows 运行机制是“,事件驱动”。4、构成对象的两个主要因素是和服务。5、运算符重载时,其函数名由构成。成
41、员函数重载双目运算符,左操作数是,右操作数是函数参数。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 14 页,共 26 页学而不思则惘,思而不学则殆6、Windows 为用户和硬件提供了GUI ,即,图形是Windows 程序的主体。7、假如一个类的名称为MyClass,使用这个类的一个对象初始化该类的另一个对象时,可以调用构造函数来完成此功能。8、MFC 中对话框分为和无模式对话框。9、在动态内存申请含有10 个 char 型数组元素的连续空间的语句为:char *p= 。1. 若要把 void fun() 定义为类A 的友元函数,则应在类A
42、的定义中加入语句。2. 列出 C+中的两种代码复用方式:和模板。3. C+语言异常处理机制的基本思想是。4. ios 类有四个直接派生类,输入流类、输出流类、类和类。5. 后置自增运算符“ +”重载为类的成员函数(设类名为A)的形式为:。6. C+标准库函数抛出的所有异常类的基类为类。7. 从实现的角度来讲,多态性可以划分为两类:和。8. 在 MFC 中,对话框的功能被封装在类中。三、运行结果题1.#include class A public: virtual void fabc()coutA好!n; ; class B: public Apublic:void fabc()coutfabc
43、(); 2.#include class A int a; public: A( int aa ) a=aa; cout前; A( ) cout 后 ; void outa( ) coutouta( ); delete p; 3. #include class complex double real,imag; public:complex(double a=0.0,double b=0.0)real=a; imag=b;cout中国梦 ; void disp()cout(real,imag); ; -装-精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - -
44、-第 15 页,共 26 页学而不思则惘,思而不学则殆void main() complex z1(6),z2;z2=complex(9); z1.disp(); z2.disp(); 4.#include class base int x; public: base(int a) x=a; cout ” base ” xendl; base(base &t) x=t.x; cout ” base copy ” xendl; ; class derived:public base int y; public: derived(int a ,int b):base(b) y=a; cout ”d
45、erived ” yendl; derived(derived &t ): base(t) y=t.y; cout” derived ” yendl; ; void main() base *pb=new derived(52,54); base a(*pb); delete pb; 5#include class base int num; public: base(int x)num=x;cout ” Initilizing num= “ numendl; ; void main() 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 16 页,共
46、 26 页学而不思则惘,思而不学则殆 cout ” Entering main ” endl; cout ” Exiting main ” endl; static base a(548); 6#include class wg double m; static double sm; static int sn; public:wg( double m0 ) m=m0; sm+=m0; sn+; wg( ) sm-=m; sn-; static void disp( ) cout卖瓜的总重量为:smendl 卖瓜的总数为: snendl; ; double wg:sm=0; int wg:sn
47、=0; void main( ) wg x1(1.1), x2(2.2), x3(3.3), x4(4.4); x3.wg( ); x1.disp( ); 7#include class base public: int a1; base(int n1)a1=n1; ; class A: virtual public base public: int a2; A(int n1, int n2):base(n1) a2=n2; ; class B: virtual public base public: int a3; B(int n2, int n3):base(n2) a3=n3; ; cl
48、ass C: public A,public B public: int a4; C(int n1,int n2,int n3,int n4): A(n1,n2),B(n1,n3),base(n1) a4=n4; ; void main() C x(4,3,2,1),*pc=&x; couta4; B *pb=&x; couta3; A *pa=&x; couta2; base *p=&x; couta1; 1. #include/私有属性成员的使用-装-订-精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 17 页,共 26 页学而不思则惘,思而不
49、学则殆#include class ok3 char a20;int b;void kk()cout私有属性成员的使用n; public:void inab(char aa,int bb)strcpy(a,aa);b=bb; void outab()coutaendlbendl;kk(); ; void main() ok3 x; x.inab(面向对象 ,321); x.outab(); 2. #include class wang int a,b,c; public:wang(int t1,int t2,int t3)a=t1;b=t2;c=t3;cout三个参数 endl; wang(i
50、nt t1,int t2)a=t1;b=t2;cout二个参数 endl; wang(int t1)a=t1;cout一个参数 endl; wang()cout不带参数 endl; void out()couta:b:cendl; ; void main() wang x(1,2,3); wang y(11,22); wang z(33); 3. #include class mg 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 18 页,共 26 页学而不思则惘,思而不学则殆 double m;static double sm;static in
51、t sn; public:mg(double m0)m=m0;sm=sm+m0;sn+; mg()sm=sm-m;sn-; static void disp() cout总重量为: smendl; cout总数为: snendl; ; double mg:sm=0;int mg:sn=0; void main() mg x1(7),x2(5),x3(8),x4(3);x2.mg(); x1.disp();x4.disp(); 4. #include class Apublic: virtual void v1()coutA中的 v1n; a1(); void a1()coutA中的 a1n;
52、v2(); virtual void v2()coutA中的 v2n; ; class B:public Apublic: void v1()coutB中的 v1n; a1(); void b1()coutB中的 b1n; v1(); void v2()coutB中的 v2n; ; void main() B b; b.b1(); 1. #include class A int a; public: A( int aa ) a=aa; cout左; A( ) cout右 ; void outa( ) coutouta( ); delete p; 精选学习资料 - - - - - - - - -
53、 名师归纳总结 - - - - - - -第 19 页,共 26 页学而不思则惘,思而不学则殆2. #include class A public: virtual void fabc() coutHello,A!n; ; class B: public A public: void fabc() coutfabc(); 3. #include class complex double real,imag; public:complex(double a=0.0,double b=0.0) real=a; imag=b; cout正在构造 ; void disp() cout(real,ima
54、g); ; void main() complex z1(3),z2;z2=complex(5); z1.disp(); z2.disp(); 4#include class wg double m; static double sm; static int sn; public:wg( double m0 ) m=m0; sm+=m0; sn+; wg( ) sm-=m; sn-; static void disp( ) cout卖瓜的总重量为:smendl 卖瓜的总数为: snendl; ; double wg:sm=0; int wg:sn=0; void main( ) wg x1(1
55、.1), x2(2.2), x3(3.3), x4(4.4); x3.wg( ); x1.disp( ); 5#include class base public: int a1; base(int n1)a1=n1; ; class A: virtual public base public: int a2; A(int n1, int n2):base(n1) a2=n2; ; class B: virtual public base public: int a3; B(int n2, int -装-精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -
56、第 20 页,共 26 页学而不思则惘,思而不学则殆n3):base(n2) a3=n3; ; class C: public A,public B public: int a4; C(int n1,int n2,int n3,int n4): A(n1,n2),B(n1,n3),base(n1) a4=n4; ; void main() C x(4,3,2,1),*pc=&x; couta4; B *pb=&x; couta3; A *pa=&x; couta2; base *p=&x; couta1; 1、#include using namespace std; class base p
57、rivate :int a, b; public : void init(int x, int y) a = x; b = y; void print() cout2 * a - b = (2*a-b) endl; ; void main() base a; a.init(68,55); a.print(); 2、#include using namespace std; class A public: virtual void f() coutf in An; ; class B: public A public: void f() coutf(); 3、#include using nam
58、espace std; class complex double real,imag; public:complex(double a=0.0,double b=0.0):real(a),imag(b) coutconstructor ; void disp() cout(real,imag); ; void main() complex z1(1,2),z2(2,3);z2=complex(); z1.disp(); z2.disp(); 4、#include using namespace std; 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -
59、第 21 页,共 26 页学而不思则惘,思而不学则殆class A private: int a; protected: int b; public: int c; A():a(1),b(2),c(3) void f()b=4;coutclass Aendl; ; class B:public Apublic:void g()coutbc;coutclass Bendl; void main() B w; w.f(); w.g(); 5、#include using namespace std; class base public: char letter1; base(char n1)let
60、ter1=n1; ; class A: virtual public base public: char letter2; A(char n1, char n2):base(n1) letter2=n2; ; class B: virtual public base public: char letter3; B(char n2, char n3):base(n2) letter3=n3; ; class C: public A,public B public: char letter4; C(char n1,char n2,char n3,char n4): A(n2,n2),B(n3,n3
61、),base(n1) letter4=n4; ; void main() C x(C,B,A,X),*pc=&x; coutletter4; B *pb=&x; coutletter3; A *pa=&x; coutletter2; base *p=&x; coutletter1; 1、#include #include class A char a20; int b;void kk()cout函数调用 n; public:void inab(char aa,int bb)strcpy(a,aa);b=bb; void outab()coutaendlbendl;kk(); ; void ma
62、in() A x; x.inab(abc,246); x.outab(); 2、#include -装-订-线-精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 22 页,共 26 页学而不思则惘,思而不学则殆#include class B public: int a;double b; B(int aa,double bb)a=aa;b=bb;couta好!n; B()cout 好好 !n; B()couta 再会 !n; void out()couta ba=2;p-b=2.2;p-out();delete p; B a2;a0.a=66;a0
63、.b=66.66;a1.a=88;a1.b=88.88;a0.out();a1.out(); B *b2;b0=new B;b1=new B; 3、#include class wg double m;static double sm; static int sn; public:wg(double m0)m=m0;sm=sm+m0;sn+; wg()sm=sm-m;sn-; static void disp() cout 销售出的总重量为:smendl; cout 销售出的总数为:snendl; ; double wg:sm=0;int wg:sn=0; void main() wg x1(
64、5.3),x2(6.1),x3(2.8),x4(3.4);x2.wg(); wg:disp(); 4、#include class AAA public: void f()coutAAAn; ; class BBB:public AAA public: void f()coutBBBn; ; class CCC:public BBB public: void f()coutCCCn; ; 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 23 页,共 26 页学而不思则惘,思而不学则殆void main() CCC x; x.BBB:f(); 5、#
65、include class A int i; public: A(int x):i(x); class B:public A int i; public: B(int x,int y):A(x),i(y) void display() couti=iendl; void main() B myB(10,20); myB.display(); 6、#include class A public:virtual void print()cout” class A!n” ; ; class B:public A public: virtual void printf( ) ; class C:pub
66、lic B public: virtual void print( ) coutprint( ); void main( ) A *pA=new A; B *pB=new B; C *pC=new C; show(pA); show(pB); show(pC); 1. #include using namespace std; class B int a;double b; public:B()a=0;b=0.0;coutB类构造函数 ; void cinb(int aa,double bb)a=aa;b=bb; void outab()coutabendl; ; 精选学习资料 - - - -
67、 - - - - - 名师归纳总结 - - - - - - -第 24 页,共 26 页学而不思则惘,思而不学则殆void main() B x; x.cinb(6,2.18); x.outab(); 2. #include using namespace std; class A int a;int b; public: void f(int x)a=x;coutaendl;h(); void g(int y); void h(); ; void A:g(int y) cout程序设计 endl; void A:h()cout面向对象 endl; void main() A x; x.f(1
68、00); x.g(200); 3. #include using namespace std; class basepublic:int x0; base(int x0)this-x0=x0;cout有参的 basen; base()cout 无参的 basen; base()cout1; class A:virtual public base public:int a; A(int x1):base(54)a=x1;cout有参的 An; A()cout 无参的 An; A()cout2; class B:virtual public basepublic:int b;B(int x2)b=
69、x2;cout有参的 Bn; B()cout 无参的 Bn; B()cout3; class C:public A,public B int c; public:C(int t1,int t2,int t3,int t4):A(t1),B(),base()c=t4;cout有参的 Cn; C()cout 无参的 Cn; C()cout4; -装-订-精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 25 页,共 26 页学而不思则惘,思而不学则殆void main() C x(1,2,3,4); C y; 4. #include class A private: int a; protected: int b; public: int c; void f()b=3;cout宿州学院 n; ; class B:public A public:int d; void g()coutbc;cout信息工程学院n; ; void main() B w; int c; w.c=44; w.d=40; w.f(); w.g(); 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 26 页,共 26 页