《面向对象技术与c+》网上直播.ppt

上传人:牧羊曲112 文档编号:5033541 上传时间:2023-05-30 格式:PPT 页数:84 大小:210KB
返回 下载 相关 举报
《面向对象技术与c+》网上直播.ppt_第1页
第1页 / 共84页
《面向对象技术与c+》网上直播.ppt_第2页
第2页 / 共84页
《面向对象技术与c+》网上直播.ppt_第3页
第3页 / 共84页
《面向对象技术与c+》网上直播.ppt_第4页
第4页 / 共84页
《面向对象技术与c+》网上直播.ppt_第5页
第5页 / 共84页
点击查看更多>>
资源描述

《《面向对象技术与c+》网上直播.ppt》由会员分享,可在线阅读,更多相关《《面向对象技术与c+》网上直播.ppt(84页珍藏版)》请在三一办公上搜索。

1、面向对象技术及C+网上直播(2),关于考试,形式:开卷考试时间:1.5小时考试范围:第1章 第7章(重点章节:第2章 第6章)考试题型:参考网页中的教学大纲,考试题型,填空判断正误多项选择改正程序段中的错误简答题写出程序段运行结果编写程序段编写完整程序,重点题型,填充题指出程序段中的错误,说明错误原因并改正 选择题简答题写出程序运行时的输出结果-虚函数与多态性-构造函数与析构函数的次序(继承/复合)6.编程题-函数模板-建立用于完成 xxx 功能的类 编写类说明文件与类实现文件(类和运算符重载),模拟试题分析填充题,使用关键字()声明的标识符的值在程序运行过程中是不能进行修改的。,模拟试题分析

2、填充题,在类的定义中,()成员函数用于读取private成员数据的值,而不改变private成员数据值。,模拟试题分析改错题,main()cout i;int i=5;return 0;,有三处错误:1.main()函数的类型应说明为int;2.使用cout应包含头文件iostream.h 3.x必须在声明之后才能使用可改为:#include int main()int i=5;cout i;return 0;,模拟试题分析选择题,以下类型转换不正确的是()void*pv;int*pi;A pv=pi;B pi=pv;C pv=(void*)pi;D pi=(int*)pv;,模拟试题分析简答

3、题,单目运算符:有何用途?,模拟试题分析简答题,:运算符用于在任何函数的任何块语句中访问一个全局标识符,而不管是否存在同名的局部标识符。,模拟试题分析写出程序运行结果,#include class X public:virtual void f()cout f();return 0;,模拟试题分析写出程序运行结果,#include class X public:virtual void f()cout f();return 0;,CLASS XCLASS YCLASS ZCLASS Z,模拟试题分析写出程序运行结果,#include class A public:A()coutA;A()cou

4、tA;class B public:B()coutB;B()coutB;class C public:C()coutC;C()coutC;private:A c1;B c2;class D public:D()coutD;D()coutD;class E:public C public:E()coutE;E()coutE;private:B e1;D e2;int main()E e;cout endl;return 0;,模拟试题分析写出程序运行结果,#include class A public:A()coutA;A()coutA;class B public:B()coutB;B()co

5、utB;class C public:C()coutC;C()coutC;private:A c1;B c2;class D public:D()coutD;D()coutD;class E:public C public:E()coutE;E()coutE;private:B e1;D e2;int main()E e;cout endl;return 0;,A B C B D EE D B C B A,模拟试题分析编程题,1。编写一个程序,用名为min的函数模板计算三个参数的最小值。,函数模板的例子,functiontemplate.cpp是模板的源程序。,/*/functiontempl

6、ate.cpp/*#include template T min(const T a,const T b,const T c)if(a=b,模拟试题分析编程题,2。建立一个表示数组的类。,数组类Array,数组类的ADT描述 域:不同元素个数的不同元素值的各种组合。操作:下标范围检查 数组赋值 数组比较 数组I/O,数组类Array,array.h是类说明的头文件;array.cpp是类实现的源程序文件。,具体代码见第1次网上直播的讲解,面向对象技术与C+模拟试卷一,第一题 填充题(10分)1使用类的运算符重载不能改变运算符的()和()。2函数()能够定义一个在不同数据类型基础上完成同一个任务

7、的一组函数。3struct成员的默认访问模式是(),而class成员的默认访问模式是()。4运算符new分配的动态内存要用运算符()回收。如果在一个类的构造函数中使用new分配动态内存,则回收操作应在()中完成。5关键字()指定了不可修改的对象或变量。关键字()指定一个类的成员不会修改类中的数据成员。6如果一个类包含一个或多个纯虚函数,则该类为()类。,面向对象技术与C+模拟试卷一,第二题 指出下列程序段中的错误,说明错误原因,并改正(15分)1main()coutxendl;int x=100;return 0;,面向对象技术与C+模拟试卷一,第二题 指出下列程序段中的错误,说明错误原因,并

8、改正(15分)2class Date public:void Date(int,int,int);/其他成员函数的原型说明 private:void Date();int year=2009;month=01;day=01;,面向对象技术与C+模拟试卷一,第二题 指出下列程序段中的错误,说明错误原因,并改正(15分)3class A public:void A(int s=10)const data=new ints;void A(int s=10)const cout”this object is destroyed”endl;private:int*data;,面向对象技术与C+模拟试卷一

9、,第三题 选择题(10分)1在VC+中,编辑器所生成的文件的扩展名为()A.cpp B.obj C.lib D.exe2每个类()构造函数。A 只能有一个 B 只可有私有的 C 可以有多个 D 只可有缺省的,面向对象技术与C+模拟试卷一,第三题 选择题(10分)3在类中说明的成员可以使用关键字()()进行修饰。A private B extern C auto D public E register4创建或删除堆对象,需要使用操作符()()A-B new C delete D.E*,面向对象技术与C+模拟试卷一,第三题 选择题(10分)5在派生类中重新定义虚函数时必须在()()方面与基类保持一

10、致。A 参数个数 B 参数类型 C 参数名字 D 操作内容 E 赋值6C+类体系中,不能被派生类继承的有()()。A 转换函数 B 构造函数 C 虚函数 D 静态成员函数 E 赋值操作函数,面向对象技术与C+模拟试卷一,第四题 写出以下程序运行时的输出结果(10分)#include class Basepublic:Base()cout Constructing Base n;virtual void myname()cout Base n;class Point:public Basepublic:Point()cout Constructing Point.n;void myname()c

11、out Point n;class Circle:public Pointpublic:virtual void myname()cout Circle n;class Cylinder:public Circle;Base o1;Cyclinder o2;,面向对象技术与C+模拟试卷一,int main()Base a;Point b;Circle c;Cylinder d;Base*pv4=,面向对象技术与C+模拟试卷一,第五题 写出以下程序运行时的输出结果(10分)#include class A public:A()cout A;A()cout A;class Bpublic:B()c

12、out B;B()cout B;private:A m;class C:public Apublic:C()cout C;C()cout C;private:B m;,面向对象技术与C+模拟试卷一,A obj;B obj2;C obj3;int main()C objc;B*p=new B;cout endl;delete p;return 0;,面向对象技术与C+模拟试卷一,第六题 编程题(20分)编写一个程序,用名为min的函数模板计算任何个数组成的数组中的最小值。用整型、字符和浮点数测试所编写的程序。,面向对象技术与C+模拟试卷一,第七题 编程题(25分)定义并实现表示由字符元素组成的集

13、合类型CharSet。需提供的操作至少应包括:l 构造函数l 析构函数l 拷贝构造函数l 插入元素(insert 函数)l 求元素个数(getCount 函数)l 集合并运算(+运算符)l 集合交运算(*运算符)l 集合差运算(-运算符)l 集合显示输出(运算符)集合显示输出的格式为c1,c2,空集的输出为。,面向对象技术与C+模拟试卷一,CharSet类型的使用例子如下:/*/*testCharSet.cpp*/*/#include#include charset.hint main()CharSet s1(100),s2(100);for(char c=A;c=P;c+)s1.insert

14、(c);s2.insert(c+5);/插入元素 cout The number of elements of set1 is s1.getCount();coutendl;,面向对象技术与C+模拟试卷一,cout s1 s2=s1+s2;/集合并 coutendl;cout s1 s2=s1*s2;/集合交 coutendl;cout s1 s2=s1-s2;/集合差 coutendl;return 0;,面向对象技术与C+模拟试卷二,1.使用关键字()指定一个类的成员函数为虚函数。2.在VC+中,连接器所生成的文件的扩展名为()。3.重载赋值运算符 operator=时,应将其声明为类的(

15、)函数。4.当使用带参数的流操纵算子时,程序中必须包含头文件()。5.C+中的输入/输出是以字节()的形式实现的。6.如果没有为类的成员对象提供成员初始化值,那么该对象的()将被调用。7.C+提供的()能够把C编译器编译好的函数与C+程序正确地连接。8.()数据成员是类的所有对象共享的信息。9.()提供了一种描述通用类的方法。10.()是用来初始化类的数据成员的一种特殊的成员函数。,面向对象技术与C+模拟试卷二,1main()pi=3.14;cout pi endl;double pi;return 0;,面向对象技术与C+模拟试卷二,2.class Rational public:void

16、Rational(int,int);/其他成员函数的原型说明private:void Rational();int a=0,b=1;,面向对象技术与C+模拟试卷二,3class someClass public:someFunction(int a=1)const value=a+;static double anotherFunction()return value+shareValue;private:double value;static double shareValue;,面向对象技术与C+模拟试卷二,1在VC+中,工程工作区所生成的文件的扩展名为()A.cppB.objC.dswD

17、.exe2对于类T 的类型转换运算符函数,下列说明正确的是()A void operator T(int s=10);B void operator T()const;C operator int();D T(int s=10);,面向对象技术与C+模拟试卷二,3重载函数调用运算符operator()时,应将其声明为类的()函数。A 非成员B 虚C 成员D 多态4以下哪个类型转换是错误的?()void*pv;int*pi;A pv=pi;B pi=pv;C pv=(void*)pi;D pi=(int*)pv;,面向对象技术与C+模拟试卷二,5对于类T的非const成员函数来说,this的含义

18、为()或()。A T this;B const T*const this;C T*this;D const T*this;E T*const this;6通过()和()调用虚函数时,采用动态联编。A 对象引用B 对象名C 成员名限定D 对象指针E this指针,面向对象技术与C+模拟试卷二,7定义类T的对象O的正确方法是()()。A T O;B T O();C O T;D O T();E T O(100);,面向对象技术与C+模拟试卷二,#include class Base public:virtual void write()cout Base n;class Derived:public

19、 Base void write()cout Derived n;class DerivedDerived:public Derived void write()cout DerivedDerivedn;class DerivedDerivedDerived:public DerivedDerived;,面向对象技术与C+模拟试卷二,int main()Base b;Derived d;DerivedDerived dd;DerivedDerivedDerived ddd;Base*pb4=,面向对象技术与C+模拟试卷二,#include#include class X char conten

20、ts100;public:X(const char*s)cout Constructing string s n;strcpy(contents,s);X(const X,面向对象技术与C+模拟试卷二,X g(X arg)return arg;int main()X x=aaaaa;x=g(x);return 0;,面向对象技术与C+模拟试卷二,编写一个程序,用名为max的函数模板计算任何个数组成的数组中的最大值。用整型、字符和浮点数测试所编写的程序。,面向对象技术与C+模拟试卷二,定义并实现表示由字符元素组成的集合类型IntSet。需提供的操作至少应包括:l 构造函数l 析构函数l 拷贝构造

21、函数l 插入元素(insert 函数)l 求元素个数(getCount 函数)l 集合并运算(+运算符)l 集合交运算(*运算符)l 集合差运算(-运算符)l 集合显示输出(运算符)集合显示输出的格式为i1,i2,空集的输出为,面向对象技术与C+模拟试卷二,IntSet类型的使用例子如下:/*/*testIntSet.cpp*/*/#include#include intset.hint main()IntSet s1(100),s2(100);for(int i=1;c=50;i+)s1.insert(i);s2.insert(i+20);/插入元素cout The number of el

22、ements of set1 is s1.getCount();coutendl;,面向对象技术与C+模拟试卷二,cout s1 s2=s1+s2;/集合并 coutendl;cout s1 s2=s1*s2;/集合交 coutendl;cout s1 s2=s1-s2;/集合差 coutendl;return 0;,面向对象技术与C+模拟试卷三,1.在VC+中,连接器所生成的文件的扩展名为()。2.当使用带参数的流操纵算子时,程序中必须包含()头文件。3.()数据成员是类的所有对象共享的信息。4.如果一个类包含一个或多个纯虚函数,则该类为()类。5.复合对象中的成员对象是在建立复合对象之()

23、建立的。6.运算符new分配的动态内存要用运算符()回收。如果在一个类的构造函数中使用new分配动态内存,则回收操作应在类的()函数中完成。7.函数()是定义在不同数据类型基础上完成同一任务的一组函数的统一定义。8.在public方式的类继承中,()类的指针可作为()类的指针使用。如果没有为类的成员对象提供成员初始化值,那么该对象的()构造函数将被调用。,面向对象技术与C+模拟试卷三,1main()coutcendl;char c=101;return 0;,面向对象技术与C+模拟试卷三,class Rational/表示有理数的类声明public:void Rational(int,int)

24、;/第1个参数为分子,第2个参数为分母/其他成员函数的原型说明private:void Rational();/默认的数为0,其分子表示为0,分母表示为1int a=0,b=1;,面向对象技术与C+模拟试卷三,3class myClass public:myClass(char a,int b)v=a;si=b;void f1(int i=10)const v=v+i;static int f2()return v+si;private:char v;static int si;,面向对象技术与C+模拟试卷三,1在VC+中,工程工作区所生成的文件的扩展名为()A.cppB.objC.dswD.

25、exeE 以上都不正确2对于类C 的类型转换运算符函数,下列说明正确的是()A void operator C(double=10);B void operator C();C operator double();D C(double a=10);E 以上都不正确,面向对象技术与C+模拟试卷三,3C+类体系中,不能被派生类继承的有()()。A 转换函数B 构造函数C 虚函数D 静态成员函数E 赋值操作函数4创建或删除堆对象,需要使用操作符()()A-B newC deleteD.E*,面向对象技术与C+模拟试卷三,5以下错误的类型转换是()void*pv;int*pi;A pv=pi;B pi

26、=pv;C pv=(void*)pi;D pi=(int*)pv;E 以上都不正确6通过()和()调用虚函数时,采用动态联编。A 对象引用B 对象名C 成员名限定D 对象指针E this指针,面向对象技术与C+模拟试卷三,7.每个类()构造函数。A 只能有一个B 只可有private的C 可以有多个public的D 只可有缺省的E 以上都不正确,面向对象技术与C+模拟试卷三,#include class A public:A()cout initialize An;virtual void write()cout class A n;class B:public A public:B()cou

27、t initialize Bn;void write()cout class B n;class C:public B public:C()cout initialize Cn;void write()cout class Cn;class D:public C public:D()cout initialize Dn;,面向对象技术与C+模拟试卷三,int main()A a;B b;C c;D d;A*p=,面向对象技术与C+模拟试卷三,#include class A public:A()cout AAA;A()cout AAA;class B:public A public:B()co

28、ut BBB;B()cout BBB;private:A m1,m2;class C:public Apublic:C()cout CCC;C()cout CCC;private:B m1,m2;,面向对象技术与C+模拟试卷三,A obj;B obj2;C obj3;int main()C objc;B*p=new B;cout endl;delete p;static A sa;return 0;,面向对象技术与C+模拟试卷三,编写一个名称为plus的函数模板计算其三个同类型参数值的和。,面向对象技术与C+模拟试卷三,定义并实现表示由字符元素组成的集合类型CharSet。需提供的操作至少应包

29、括:l 构造函数l 析构函数l 拷贝构造函数l 插入元素(insert 函数)l 求元素个数(getCount 函数)l 判断一个字符是否属于集合(isMember 函数)l 判断一个集合是否是另一个集合的子集(isSubset 函数)l 集合并运算(+运算符)l 集合显示输出(运算符)集合显示输出的格式为c1,c2,空集的输出为。,面向对象技术与C+模拟试卷三,CharSet类型的使用例子如下:/*/*testCharSet.cpp*/*/#include#include charset.hint main()CharSet s1(100),s2(100);for(char c=A;c=P;

30、c+)s1.insert(c);s2.insert(c+5);/插入元素cout The number of elements of set s1 is s1.getCount()endl;cout s1 s2=s1+s2 endl;/集合并if(s1.isMember(A)cout A is a member of set s1 endl;if(s1.isSubset(s2)cout set s2 is a subset of set s1 endl;return 0;,面向对象技术与C+模拟试卷四,1.在VC+中,编译器所生成的文件的扩展名为()。2.与系统中标准设备对应的四个流对象是()

31、、()、()和 clog。3.每个对象都维护了一个指向自身的指针,这个指针称为()指针。4.在类定义中,将()置于成员函数原型的末尾可以声明该函数为纯虚函数。5.关键字()引出了重载运算符函数的定义。6.类的()成员只能被该类的成员函数或友元函数所访问。7.重载的流运算符应该定义为类的()函数。重载赋值运算符 operator=时,应将其声明为类的()函数。,面向对象技术与C+模拟试卷四,1main()cout i endl;int i=0 x101;return 0;,面向对象技术与C+模拟试卷四,2class Complex/表示复数的类声明public:void Complex(doub

32、le,double);/第1个参数为实部,第2个参数为虚部/其他成员函数的原型说明private:void Complex();/默认复数的实部表示为0,虚部表示为0int real=0,image=0;,面向对象技术与C+模拟试卷四,3class BBB public:void print()cout x endl;virtual void fun(int)print();private:int x;class DDD:public BBB public:void print()cout BBB:x y endl;virtual int fun(int)print();return 0;pr

33、ivate:int y;,面向对象技术与C+模拟试卷四,1在类中说明的成员可以使用关键字()()进行修饰。A private B extern C auto D public E register2在派生类中重新定义虚函数时必须在()()方面与基类保持一致。A 参数个数 B 参数类型 C 参数名字 D 操作内容 E 赋值,面向对象技术与C+模拟试卷四,3C+类体系中,不能被派生类继承的有()()。A 转换函数 B 构造函数 C 虚函数 D 静态成员函数 E 赋值操作函数4对于类T的非const成员函数来说,this的含义为()或()。A T this;B const T*const this;

34、C T*this;D const T*this;E T*const this;,面向对象技术与C+模拟试卷四,5通过()和()调用虚函数时,采用动态联编。A 对象引用 B 对象名 C 成员名限定 D 对象指针 E this指针,面向对象技术与C+模拟试卷四,#include class A public:A()cout A;A()cout A;virtual void print()cout AAA;class B:public A public:B()cout B;B()cout B;void print()cout BBB;class C:public B public:C()cout C

35、;C()cout C;class D:public C public:D()cout D;D()cout D;void print()cout DDD;,面向对象技术与C+模拟试卷四,int main()A a;B b;C c;D d;cout print();arri.print();cout endl;return 0;,面向对象技术与C+模拟试卷四,#include#include class X char contents10;public:X(const char*s)cout Calling constructor:s n;strcpy(contents,s);X(const X,

36、面向对象技术与C+模拟试卷四,X g(X arg)return arg;int main()X x=xvalue;x=g(x);return 0;,面向对象技术与C+模拟试卷四,编写一个名称为product的函数模板计算其两个同类型参数值的积。,面向对象技术与C+模拟试卷四,定义并实现表示由字符元素组成的集合类型IntSet。需提供的操作至少应包括:l 构造函数l 析构函数l 拷贝构造函数l 插入元素(insert 函数)l 求元素个数(getCount 函数)l 判断一个数是否属于集合(isMember 函数)l 判断一个集合是否是另一个集合的子集(isSubset 函数)l 集合并运算(+

37、运算符)l 集合显示输出(运算符)集合显示输出的格式为c1,c2,空集的输出为。,面向对象技术与C+模拟试卷四,IntSet类型的使用例子如下:/*/*testIntSet.cpp*/*/#include#include intset.hint main()IntSet s1(100),s2(100);for(Int i=100;i=150;i+)s1.insert(i);s2.insert(i+25);/插入元素cout The number of elements of set s1 is s1.getCount()endl;cout s1 s2=s1+s2 endl;/集合并if(s1.isMember(10)cout A is a member of set s1 endl;if(s1.isSubset(s2)cout set s2 is a subset of set s1 endl;return 0;,第2次网上直播结束,祝同学们考试取得好成绩!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号