南京信息工程大学-C++-期末复习_第1页
南京信息工程大学-C++-期末复习_第2页
南京信息工程大学-C++-期末复习_第3页
南京信息工程大学-C++-期末复习_第4页
南京信息工程大学-C++-期末复习_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

课程内容总结第一章绪论第二章C++简单程序设计第三章函数第四章类与对象第五章数据的共享与保护第六章数组、指针与字符串第七章继承与派生第八章多态性第一章绪论1、面向对象程序设计的特点2、类、对象概念3、程序开发的基本过程第二章C++简单程序设计1、C++特点2、C++程序结构3、标识符、数据类型、常量、变量、表达式4、C++语句5、数据输入输出(cin、cout)第三章函数1、函数的定义和调用、函数原型2、函数间的参数传递(引用传递)3、内联函数4、带默认形参值的函数5、函数重载第四章类与对象1、类的定义(成员类型、访问属性)2、对象的创建3、对象成员的访问4、构造函数与析构函数(作用、特点)5、类的组合(包含对象的初始化)第五章数据的共享与保护1、标识符的作用域与可见性2、生存期3、类的静态成员第6章数组、指针与字符串1、对象数组2、对象指针3、动态内存分配4、字符串5、深复制与浅复制第7章继承与派生1、类的继承与派生2、访问控制3、派生类的构造函数和析构函数第8章多态性1、多态性概述2、运算符重载3、虚函数例题:单项选择题1、在下列关键字中,用以说明类中公有成员的是()A.public B.private C.protected D.friend2、下列的各类函数中,()不是类的成员函数。A.构造函数 B.析构函数 C.友元函数 D.拷贝初始化构造函数3、作用域运算符的功能是()。A.标识作用域的级别的B.指出作用域的范围的C.给定作用域的大小的D.标识某个成员是属于哪个类的4、()不是构造函数的特征。A.构造函数的函数名与类名相同;B.构造函数可以重载;C.构造函数可以设置缺省参数;D.构造函数必须指定类型说明。5、()是析构函数的特征。A.一个类中只能定义一个析构函数;B.析构函数与类名不同;C.析构函数的定义只能在类体内;D.析构函数可以有各个或多个参数。

例题:单项选择题6.友元的作用()。A.提高程序的运用效率;B.加强类的封装性;C.实现数据的隐藏性;D.增加成员函数的种类。

7.下列对派生类的描述中,()是错的。A.一个派生类可以作另一个派生类的基类;B.派生类至少有一个基类;C.派生类的成员除了它自己的成员外,还包含了它的基类的成员;D.派生类中继承的基类成员的访问权限到派生类保持不变。

8.派生类的对象对它的基类成员中()是可以访问的。A.公有继承的公有成员; B.公有继承的私有成员;C.公有继承的保护成员;D.私有继承的公有成员。9.关于动态联编的下列描述中,()是错误的。A.动态联编是以虚函数为基础的;B.动态联编是在运行时确定所调用的函数代码的;C.动态联编调用函数操作是指向对象的指针或对象引用;D.动态联编是在编译时确定操作函数的;例题:填空题1.C++中定义虚函数所用的关键字是____。2.C++中进行输入、输出操作时,将数据对象从输入流提取出来的运算符是____,插入到输出流的运算符是____。3.类的继承是指子类继承基类的___和成员函数。4.不同对象可以调用相同名称的函数,但可导致完全不同的行为的现象称为____。5.设在程序中使用如下语句申请了一个对象数组:Point*ptr=newPoint[2];则在需要释放ptr指向的动态数组对象时,所使用的语句是__

__。6.在保护派生中,基类权限为Private的成员在派生类中____

。7.C++中多态性包括两种多态性:____和____

。前者是通过函数重载实现的,而后者是通过____和____来实现的。8.在继承机制下,当对象产生时,编译系统先执行____的构造函数,然后再执行____的构造函数,最后才执行____的构造函数。#include<iostream.h>classA{public: voidShow(){cout<<"A::Show\n";};};classB:publicA{public: voidShow(){cout<<"B::Show\n";}; voidDisplay(){Show();}; };voidmain(){ Aa; Bb; a.Show(); b.Show(); b.Display();}例题:读程序写结果#include<iostream>usingnamespacestd;classA{public: voidfun(inti) {cout<<"A.i="<<i<<endl;}};classB:publicA{public: voidfun(intj) {cout<<"B.j="<<j<<endl;}};例题:读程序写结果intmain(){ Aa; Bb; A*p; p=&a; p->fun(10); p=&b; p->fun(100);return1;}#include<iostream>usingnamespacestd;classA{public: virtualvoidfun(inti) {cout<<"A.i="<<i<<endl;}};classB:publicA{public: voidfun(intj) {cout<<"B.j="<<j<<endl;}};例题:读程序写结果intmain(){ Aa; Bb; A*p; p=&a; p->fun(10); p=&b; p->fun(100);return1;}例题:程序填空题

#include<iostream>usingnamespacestd;

classcomplex{public:

intreal;

intimag;

complex(intr=0,inti=0) { real=r;

imag=i;

}__________________;};

complexoperator+(_____,complex&b){intr=a.real+b.real;

inti=a.imag+b.imag;

return

}voidmain(){complexx(1,2),y(3,4),z;

z=x+y;

cout<<z.real<<″+″<<z.imag<<″i″<<endl;}

例题:程序设计题编写一个程序,声明抽象基类Point,由它派生出3个派生类:Line(直线)、Triangle(三角形)、Rectangle(矩形),用一个函数Perimeter分别输出以上三者的边长,3个图形的数据在定义对象时给定。

#include<iostream.h>#include<math.h>//usingnamespacestd;//定义抽象基类PointclassPoint{public:virtualdoubleperimeter()=0;//纯虚函数};//定义Line类classLine:publicPoint{public:Line(floata,floatb,floatc,floatd):x1(a),y1(b),x2(c),y2(b){}//构造函数virtualdoubleperimeter(){returnsqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));}//定义虚函数protected: floatx1,y1,x2,y2;//定义端点坐标};例题:程序设计题classTriangle:publicPoint{public: Triangle(floata,floatb,floatc,floatd,floate,floatf):x1(a),y1(b),x2(c),y2(d),x3(e),y3(f){};//构造函数virtualdoubleperimeter()//定义虚函数{doubleL12,L23,L31;L12=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));L23=sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2));L31=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));returnL12+L23+L31;};protected: floatx1,y1,x2,y2,x3,y3;//定义端点};

例题:程序设计题classRectangle:publicPoint//定义Rectangle类{public:Rectangle(doublew,doubleh):width(w),height(h){}//构造函数

virtualdoubleperimeter(){return2*(width+height);}//定义虚函数protected: doublewidth,height;//定义宽与高};intmain(){ Lineline(1.5,2.5,6.6,9.8);//建立Line类的对象lineTriangletriangle(4.5,8.4,2,3,5,6);//建立三角形类的对象triangleRectanglerectangle(4.5,8.4);//建立矩形类对象rectang

温馨提示

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

评论

0/150

提交评论