




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计科一班C+复习资料说明:这上面的题目全部来自二级C+试卷,且基本涵盖上边所有与我们考试有关的题目。第一大项:选择题(1) 基本书本概念题1.以下关于C+函数的表达中,正确的选项是(C)A)每个函数至少要具有一个参数 B)每个函数都必须返回一个值C)函数在被调用之前必须先声明 D)函数不能自己调用自己2.以下关于类和对象的表达中,错误的选项是(A)A)一个类只能有一个对象 B)对象是类的具体实例 C)类是对某一类对象的抽象 D)类和对象的关系是一种数据类型与变量的关系3)在C+中,用于实现运行时多态性的是DA)内联函数B)重载函数C)模板函数D)虚函数4).1在C+中,编译系统自动为一个类生成
2、缺省构造函数的条件是(A)。A)该类没有定义任何有参构造函数B)该类没有定义任何无参构造函数C)该类没有定义任何构造函数D)该类没有定义任何成员函数4).2以下关于派生类构造函数和析构函数的说法中,错误的选项是(D)A)派生类的构造函数会隐含调用基类的构造函数B)如果基类中没有缺省构造函数,那么派生类必须定义构造函数C)在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数D)在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数运算符的重载书本P307函数重载是对已有的运算符赋予多重含义,使用同一运算符作用于不同类型数据时导致不同的行为。三个规则5).1以下关于运算符重载
3、的表达中,错误的选项是(B)。A)有的运算符可以作为非成员函数重载B)所有的运算符都可以通过重载而被赋予新的含义规则1中C+中除少数运算符外,全部可以重载C)不得为重载的运算符函数的参数设置默认值D)有的运算符只能作为成员函数重载5).2以下有关函数重载的表达中,错误的选项是(C)A)函数重载就是用相同的函数名定义多个函数B)重载函数的参数列表必须不同C)重载函数的返回值类型必须不同D)重载函数的参数可以带有默认值5).3关于函数重载,以下表达中错误的选项是(C)A)重载函数的函数名必须相同 B)重载函数必须在参数个数或类型上有所不同C)重载函数的返回值类型必须相同D)重载函数的函数体可以有所
4、不同5).4以下关于运算符重载的描述中,正确的选项是(A)一元就是单目,二元就是双目A)运算符重载为成员函数时,假设参数表中无参数,重载的是一元运算符B)一元运算符只能作为成员函数重载也可以是非成员函数C)二元运算符重载为非成员函数时,参数表中有一个参数必须是两个D)C+中可以重载所有的运算符5).5通过运算符重载,可以改变运算符原有的(A)A)操作数类型B)操作数个数C)优先级D)结合性5).6关于运算符重载,以下表述中正确的选项是(C)A)C+已有的任何运算符都可以重载B)运算符函数的返回类型不能声明为基本数据类型C)在类型转换符函数的定义中不需要声明返回类型D)可以通过运算符重载来创建C
5、+中原来没有的运算符5).7以下关于运算符重载的表达中,正确的选项是BA)通过运算符重载,可以定义新的运算符B)有的运算符只能作为成员函数重载C)假设重载运算符+,则相应的运算符函数名是+形参表D)重载一个二元运算符时,必须声明两个形参只有一个形参,左操作数是对象本身的数据,右操作数是形参继承与派生1.派生类应当向基类的构造函数传递参数.6).1对于通过公有继承定义的派生类,假设其成员函数可以直接访问基类的某个成员,说明该基类成员的访问权限是(D)。A)公有或私有B)私有C)保护或私有D)公有或保护6).2以下有关类继承的表达中,错误的选项是(D)A)继承可以实现软件复用B)虚基类可以解决由多
6、继承产生的二义性问题C)派生类构造函数要负责调用基类的构造函数D)派生类没有继承基类的私有成员6).3如果派生类以protected方式继承基类,则原基类的protected成员和public成员在派生类中的访问属性分别是(D)B)public和protectedC)protected和publicD)protected和protected6).4派生类的成员函数不能访问基类的(C)A)公有成员和保护成员B)公有成员C)私有成员D)保护成员6).5有如下类声明:classFoointbar;则Foo类的成员bar是C不定义就默认为私有成员A公有数据成员C私有数据成员B)公有成员函数D)私有成员
7、函数7)定义派生类时,假设不使用关键字显式地规定采用何种继承方式,则默认方式为(A)。A)私有继承B)非私有继承C)保护继承D)公有继承8)建立一个有成员对象的派生类对象时,各构造函数体的执行次序为(C)。A)派生类、成员对象类、基类B)成员对象类、基类、派生类C)基类、成员对象类、派生类D)基类、派生类、成员对象类9).1在一个抽象类中,一定包含有(C)。A)虚函数B)纯虚函数C)模板函数D)重载函数10)以下有关C+流的表达中,错误的选项是(A)A)C+操作符setw设置的输出宽度永久有效B)C+操作符endl可以实现输出的回车换行C)处理文件I/O时,要包含头文件fstreamD)进行输
8、入操作时,eof()函数用于检测是否到达文件尾10).2如果利用C+流进行输入输出,下面的表达中正确的选项是(A)A)只能借助于流对象进行输入输出B)只能进行格式化输入输出C)只能借助于cin和cout进行输入输出D)只能使用运算符>>和<<进行输入输出10).3使用输入输出操作符setw,可以控制(B)A)输出精度B)输出宽度C)对齐方式D)填充字符10).4以下关于C+流的说明中,正确的选项是(A)A)与键盘、屏幕、打印机和通信端口的交互都可以通过流类来实现B)从流中获取数据的操作称为插入操作,向流中添加数据的操作称为提取操作(读操作叫做提取,写操作叫做插入,选项正
9、好反了。)C)cin是一个预定义的输入流类CIN是一个预定义的输入流类ISTREAM的对象D)输出流有一个名为open的成员函数,其作用是生成一个新的流对象打开一个文件输入流关联的文件10.5对于语句cout<<endl<<x;中的各个组成部分,以下表达中错误的选项是DA)"cout"是一个输出流对象B)"endl"的作用是输出回车换行C)"x"是一个变量D)"<<"称作提取运算符提取运算符是“>>”,插入运算符是“<<”虚函数必须是非静态成员函数。将基类
10、中的同名函数定义位虚函数,这样通过基类型指针就可以使属于不同派生类的不同对象产生不同的行为。从而实现函数的多态PAGE316。纯虚函数是在基类中声明一个虚函数,基类中没有具体定义,要求各派生类根据实际情况给出具体定义,纯虚函数的声明以“=0;”结束抽象类:带有纯虚函数的类。11)以下有关抽象类和纯虚函数的表达中,错误的选项是(D)A)拥有纯虚函数的类是抽象类,不能用来定义对象B)抽象类的派生类假设不实现纯虚函数,它也是抽象类C)纯虚函数的声明以“=0;”结束D)纯虚函数都不能有函数体纯虚函数的函数体由派生类给出。11).2以下关于虚函数的说明中,正确的选项是(B)A)从虚基类继承的函数都是虚函
11、数B)虚函数不能是静态成员函数C)只能通过指针或引用调用虚函数D)抽象类中的成员函数都是虚函数(12)对于一个类定义,以下表达中错误的选项是(B)A)如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数B)如果没有定义缺省的构造函数,编译器将一定生成一个缺省的构造函数(只有没有构造函数的情况下)D)进行输入操作时,eof()函数用于检测是否到达文件尾C)如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数D)如果已经定义了构造函数和拷贝构造函数,内联函数不是在调用时发生转移,而是编译时将函数体嵌入每一处调用处。注意现代的编译器,没有inline也可以是内联函数。13).1以
12、下有关内联函数的表达中,正确的选项是(C)A)内联函数在调用时发生控制转移B)内联函数必须通过关键字inline来定义C)内联函数是通过编译器来实现的D)内联函数函数体的最后一条语句必须是return语句13).2以下关于C+函数的说明中,正确的选项是CA)内联函数就是定义在另一个函数体内部的函数B)函数体的最后一条语句必须是return语句C)标准C+要求在调用一个函数之前,必须先声明其原型D)编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式标示符:程序员定义的单词。C+中的标识符的构成规则如下:1. 以大写字母和小写字母以及下划线开始2. 由大小写母,数字,下划线组成。3. 大
13、小字母表示不同的意义。4. 不能是C+的关键字。14以下符号中可以用作C+标识符的是AA)_radiusB)foobar出现不明符号C)else关键字D)3room不能由数字开始14).1以下字符串中,正确的C+标识符是DA)foo-1B)2bC)newD)_256函数模板TEMPLATE<模板参数表>类型名函数名<参数表>函数体的定义所有模板的定义都是用TEMPLATE开始的,模板参数表用逗号相隔的模板参数构成类模板:定义一个类的家族,使得一些数据成员,成员函数的参数,返回值,局部变量能取任意类型。(15)以下关于模板的表达中,错误的选项是CA)模板声明中的第一个符号
14、总是关键字templateB)在模板声明中用<和>括起来的部分是模板的形参表C)类模板不能有数据成员D)在一定条件下函数模板的实参可以省略THIS指针是类自动生成自动影藏的私有成员,它存在于非静态成员函数中,指向被调用的函数所在对象地址。全局只有一个THIS指针,当一个对象被创建时,THIS就指向对象数据的首地址。16以下关于this指针的表达中,正确的选项是DA)任何与类相关的函数都有this指针B)类的成员函数都有this指针C)类的友元函数都有this指针D)类的非静态成员函数才有this指针(2)程序运行结果题枚举元素常常具有默认值,比方下面这个题目中NAME=0,NUMB
15、ER=1,PLUS=5,MINUS=6,PRINT=10.1已知枚举类型定义语句为:enumTokenNAME,NUMBER,PLUS=5,MINUS,PRINT=10;则以下表达中错误的选项是(A)A) 枚举常量NAME的值为1B)枚举常量NUMBER的值为1C)枚举常量MINUS的值为6D)枚举常量PRINT的值为102执行语句序列inti=0;while(i<25)i+=3;cout<<i;输出结果是(C)A)24B)25C)27D)284有如下程序:#include<iostream>void fun(int &x,int y)int t=x;x=
16、y;y=t;int main()int a2=23,42;fun(a1,a0);std:cout<<a0<<","<<a1<<std:endl;return0;执行后的输出结果是(B)A)42,42B)23,23C)23,42D)42,23分析:a0=23,a1=42,fun(a1,a0);int&x=42,y=23,交换次序后x=23,y=42,int&x表示按地址出送,只要x的值变化了原来的a1也变化。Intx则指变量本身,局部变量变化不会改变变量的值。5有如下类声明:class MyBASEint k;p
17、ublic:void set(intn)k=n;int get() const returnk;class MyDERIVED: protected MyBASEprotected:int j;public:void set(int m,int n)MyBASE:set(m);j=n;int get() const return MyBASE:get()+j;则类MyDERIVED中保护的数据成员和成员函数的个数是BA)4B)3C)2D)1分析:MyDERIVED是MyBASE的保护继承,所以两个成员函数都是受保护的。:#include<iostream>using name sp
18、ace std;int main()cout.fill('*');cout.width(6);cout.fill('#');cout<<123<<endl;return0;执行后的输出结果是AA)#l23B)123#C)*123D)123*分析:这是一个关于c+流中使用插入运算符和操纵符的问题。page484。cout.fill('*)表示用*填充空白部分,cout.width(6)表示设定六位宽度,对齐方式右对齐。上面的代码首先是设定*填充空白,然后设定6位长度,再重新设定#填充空白部分,接着输入123,右对齐。7有如下程序:#
19、include<iostream>using namespace std;class Testpublic:Test()n+=2;Test()n-=3;static int getNum()return n;private:static int n;int Test:n=1;int main()Test*p=new Test;Delete p;cout<<"n="<<Test:getNum()<<endl;return0;执行后的输出结果是AA)n=0B)n=lC)n=2D)n=3分析:Test*p=newTest;调用构造函
20、数n=3,deletep;调用解析函数n=0;最后输出。8有如下程序:#include<iostream>using namespace std;class Apublic:A()cout<<"A"classBpublic:B()cout<<"B"classC:publicABb;public:C()cout<<"C"Int main()Cobj;return0;执行后的输出结果是DA)CBAB)BACC)ACBD)ABC9.#include<iostream>using n
21、amespace std;intmain()void function(doubleval);double val;function(val);cout<<val;return0;void function(doubleval)val=3;编译运行这个程序将出现的情况是(D)A) 编译出错,无法运行B)输出:3C)输出D)输出一个不确定的数10.有如下程序:#include<iostream>using namespace std;class Objstatic int i;public:Obj()i+;Obj()i-;static int getVal()return
22、 i;intObj:i=0;void f()Obj ob2;cout<<ob2.getVal();int main()Obj ob1;f();Obj*ob3=new Obj;cout<<ob3->getVal();delete ob3;cout<<Obj:getVal();return0;程序的输出结果是DA)232B)231C)222D)221分析:voidf()Objob2;cout<<ob2.getVal();同时调用构造和析构函数。二,填充题基本概念填空1.有一种只在循环语句或switch语句中使用的流程控制语句,表示该语句的关键字
23、是_break_。for(int i=0;i<5;i+)cout<<*(p+i)<<","能够依次输出int型一维数组DATA的前5个元素。由此可知,变量p的定义及初始化语句是_int*p=DATA_。3.假设将一个二元运算符重载为类的成员函数,其形参个数应该是_1_个。4.C+语言中的多态性分为编译时的多态性和_运行时_的多态性。5在面向对象的程序设计中,将数据和处理数据的操作封装成一个整体就定义了一种事物的类型,称作“类”。类是一种抽象的概念,属于该类的一个实例叫做“_对象_”。6指针数组是由_指针或指针变量 构成的数组。7如果使用数组名称
24、为函数参数,形实结合时,传递的是_地址_。8在类的对象被创建的时候, 静态 函数会被自动调用。2,读代码填空或给出运行结果。1.#include <iostream>using namespace std; class PARENTpublic:PARENT() cout << "PARENT" ;class SON : public PARENT public:SON() cout << "SON" ;int main() SON son; PARENT *p; p = &son; return 0;运行结果
25、:PARENTSON,这里涉及到主函数中定义一个派生类的对象一定是先调用基类的构造函数,然后再调用派生类的构造函数。下面把代码把上面的代码稍微改一下。#include <iostream>using namespace std;class PARENTpublic: PARENT() cout << "PARENT" ;class SON : public PARENT public: SON() cout << "SON" ;int main() SON son; PARENT p; p = son; return
26、0;运行结果变为PARENTSONPARENT比照上面的代码说明定义类的指针对象不会调用构造函数。3)已知以下程序的输出结果是 42,请将画线处缺失的部分补充完整。 #include <iostream>using namespace std; class Foo int value; public:Foo( ) : value(0) void setValue(int value) _this->value_ = value;void print( ) cout << value; ;int main( ) Foo f; f.setValue(42); f.pr
27、int(); return 0;4以下代码运行结果是9SS9S#include <iostream> using namespace std; class A int a; public:A():a(9)virtual void print() const cout<<a; ;class B : public A char b;public:B( )b='S'void print( ) const cout <<b; ;void show(A &x) x.print(); int main() A d1,*p; B d2;p=&
28、;d2; d1.print(); d2.print(); p->print(); show(d1); show(d2); return 0;6)下面程序的运行结果是AAB#include<iostream> using namespace std;class CApublic: CA( )cout<<'A' ;class CB:private CApublic: CB( )cout<<'B'int main() CA a; CB b;先调用基类在调用派生类 return 0;7下面的程序的运行结果是11333#inclu
29、de<iostream>using namespace std;class DA int k;public: DA(int x=1):k(x) DA( )cout<<k;int main( ) DA d=DA(3),DA(3),DA(3); DA *p=new DA2; delete p; return 0;分析:自己也有点不清楚,但是调试后我是这样解释这个答案的,析构时输出k, DA *p=new DA2;拥有两个成员,没有具体说明,所以就是题目默认k=1,所以显示两个1,DA d=DA(3),DA(3),DA(3);然后是一个拥有三个成员的数组,其中k=3,所以显示
30、三个3.8如下类定义中包含了构造函数和拷贝构造函数的原型声明,请在横线处填写正确的内容,使拷贝构造函数的声 明完整。class myClass private:int data; public:myClass(int value); myClass(const_myClass& anotherObject); 复制构造函数的定义形式为 类名类名&对象名9)请在如下程序中的空格处填写正确的语句:#include<iostream> using namespace std; class Basepublic:void fun()cout<<"Bas
31、e fun"<<endl; ;class Derivde:public Base public:void fun()_ Base:fun()_/ 调用基类的函数 fun() cout<<"Derived fun"<<endl;10)请将以下栈类 Stack 补充完整class Stack private:int pList100;int top; public:Stack():top(0)void Push(const int &item); int Pop(void);void Stack:Push(const int
32、 &item)if(top=99) exit(1);top+; pListtop=item; int Stack:Pop() if(top<0)exit(1);return pListtop-;书本page370,if(top=99) exit(1);top+; pListtop=item; 只要不到top=99,就一直压入堆栈,书上是plist+list=item.书此题第八章8-4.定义计数器Counter类,对其重载运算符+。源程序:typedefunsignedshortUSHORT;#include<iostream.h>classCounterpublic
33、:Counter();Counter(USHORTinitialValue);Counter()USHORTGetItsVal()constreturnitsVal;Void SetItsVal(USHORTx)itsVal=x;Counter operator+(constCounter&);private:USHORTitsVal;Counter:Counter(USHORTinitialValue):itsVal(initialValue)Counter:Counter():itsVal(0)Counter Counter:operator+(constCounter&r
34、hs)returnCounter(itsVal+rhs.GetItsVal();int main()CountervarOne(2),varTwo(4),varThreevarThree=varOne+varTwo;cout<<"varOne:"<<varOne.GetItsVal()<<endl;cout<<"varTwo:"<<varTwo.GetItsVal()<<endl;cout<<"varThree:"<<varThree.Ge
35、tItsVal()<<endl;return0;程序运行输出:varOne:2varTwo:4varThree:68-8定义一个基类BaseClass,从它派生出类DerivedClass,BaseClass有成员函数fn1()、fn2(),fn1()是虚函数,DerivedClass也有成员函数fn1()、fn2(),在主程序中定义一个DerivedClass的对象,分别用BaseClass和DerivedClass的指针来调用fn1()、fn2(),观察运行结果。#include<iostream.h>classBaseClasspublic:virtualvoid
36、fn1();voidfn2();void BaseClass:fn1()cout<<"调用基类的虚函数fn1()"<<endl;voidBaseClass:fn2()cout<<"调用基类的非虚函数fn2()"<<endl;classDerivedClass:publicBaseClasspublic:void fn1();void fn2();void DerivedClass:fn1()cout<<"调用派生类的函数fn1()"<<endl;void Deri
37、vedClass:fn2()cout<<"调用派生类的函数fn2()"<<endl;void main()DerivedClassaDerivedClass;DerivedClass*pDerivedClass=&aDerivedClass;BaseClass*pBaseClass=&aDerivedClass;pBaseClass->fn1();pBaseClass->fn2();pDerivedClass->fn1();pDerivedClass->fn2();程序运行输出:调用派生类的函数fn1()调用基
38、类的非虚函数fn2()调用派生类的函数fn1()调用派生类的函数fn2()第七章7-8定义一个Document类,有name成员变量,从Document派生出Book类,增加PageCount变量。#include<iostream.h>#include<string.h>class Documentpublic:Document();Document(char*name);char*Name;/Documentname.Void PrintNameOf();/Printname.;Document:Document(char*name)Name=newcharstrl
39、en(name)+1;strcpy(Name,name);void Document:PrintNameOf()cout<<Name<<endl;classBook:publicDocumentpublic:Book(char*name,longpagecount);voidPrintNameOf();private:longPageCount;Book:Book(char*name,longpagecount):Document(name)PageCount=pagecount;void Book:PrintNameOf()cout<<"Name
40、ofbook:"Document:PrintNameOf();void main()Documenta("Document1");Bookb("Book1",100);b.PrintNameOf();程序运行输出:Nameofbook:Book17-11定义一个基类BaseClass,从它派生出类DerivedClass,BaseClass有成员函数fn1()、fn2(),DerivedClass也有成员函数fn1()、fn2(),在主程序中定义一个DerivedClass的对象,分别用DerivedClass的对象以及BaseClass和De
41、rivedClass的指针来调用fn1()、fn2(),观察运行结果。解:#include<iostream.h>class BaseClasspublic:void fn1();void fn2();void BaseClass:fn1()cout<<"调用基类的函数fn1()"<<endl;void BaseClass:fn2()cout<<"调用基类的函数fn2()"<<endl;class DerivedClass:publicBaseClasspublic:voidfn1();void
42、fn2();void DerivedClass:fn1()cout<<"调用派生类的函数fn1()"<<endl;void DerivedClass:fn2()cout<<"调用派生类的函数fn2()"<<endl;void main()DerivedClassaDerivedClass;DerivedClass*pDerivedClass=&aDerivedClass;BaseClass*pBaseClass=&aDerivedClass;aDerivedClass.fn1();aDeri
43、vedClass.fn2();pBaseClass->fn1();pBaseClass->fn2();pDerivedClass->fn1();pDerivedClass->fn2();程序运行输出:调用派生类的函数fn1()调用派生类的函数fn2()调用基类的函数fn1()调用基类的函数fn2()调用派生类的函数fn1()调用派生类的函数fn2()第六章6-15 const int * p1 和 int * const p2的区别是什么?解: const int * p1 声明了一个指向整型常量的指针p1,因此不能通过指针p1来改变它所指向的整型值;int * con
44、st p2声明了一个指针型常量,用于存放整型变量的地址,这个指针一旦初始化后,就不能被重新赋值了。6-20 实现一个名为SimpleCircle的简单圆类,其数据成员int *itsRadius为一个指向其半径值的指针,设计对数据成员的各种操作,给出这个类的完整实现并测试这个类。解: 源程序:#include <iostream.h>class SimpleCirclepublic:SimpleCircle();SimpleCircle(int);SimpleCircle(const SimpleCircle &);SimpleCircle() void SetRadius
45、(int);int GetRadius()const;private:int *itsRadius;SimpleCircle:SimpleCircle()itsRadius = new int(5);SimpleCircle:SimpleCircle(int radius)itsRadius = new int(radius);SimpleCircle:SimpleCircle(const SimpleCircle & rhs)int val = rhs.GetRadius();itsRadius = new int(val);int SimpleCircle:GetRadius()
46、constreturn *itsRadius;int main()SimpleCircle CircleOne, CircleTwo(9);cout << "CircleOne: " << CircleOne.GetRadius() << endl;cout << "CircleTwo: " << CircleTwo.GetRadius() << endl;return 0;程序运行输出:CircleOne: 5CircleTwo: 9第五章5-3 下面的程序的运行结果是什么,实际运
47、行一下,看看与你的设想有何不同。#include <iostream.h>void myFunction(); int x = 5, y = 7; int main()cout << "x from main: " << x << "n"cout << "y from main: " << y << "nn"myFunction();cout << "Back from myFunction!nn"c
48、out << "x from main: " << x << "n"cout << "y from main: " << y << "n"return 0;void myFunction()int y = 10;cout << "x from myFunction: " << x << "n"cout << "y from myFunction:
49、" << y << "nn"解: 程序运行输出:x from main: 5y from main: 7x from myFunction: 5y from myFunction: 10Back from myFunction!x from main: 5y from main: 75-7 定义一个Cat类,拥有静态数据成员HowManyCats,记录Cat的个体数目;静态成员函数GetHowMany,存取HowManyCats。设计程序测试这个类,体会静态数据成员和静态成员函数的用法。解: 源程序:#include <iostrea
50、m.h>class Catpublic:Cat(int age):itsAge(age)HowManyCats+; virtual Cat() HowManyCats-; virtual int GetAge() return itsAge; virtual void SetAge(int age) itsAge = age; static int GetHowMany() return HowManyCats; private:int itsAge;static int HowManyCats;int Cat:HowManyCats = 0;void TelepathicFunctio
51、n();int main()const int MaxCats = 5;Cat *CatHouseMaxCats; int i;for (i = 0; i<MaxCats; i+)CatHousei = new Cat(i);TelepathicFunction();for ( i = 0; i<MaxCats; i+)delete CatHousei;TelepathicFunction();return 0;void TelepathicFunction()cout << "There are " << Cat:GetHowMany(
52、) << " cats alive!n"程序运行输出:There are 1 cats alive!There are 2 cats alive!There are 3 cats alive!There are 4 cats alive!There are 5 cats alive!There are 4 cats alive!There are 3 cats alive!There are 2 cats alive!There are 1 cats alive!There are 0 cats alive!5-13 定义类X、Y、Z,函数h(X*),满足:类X有私有成员i,Y的成员函数g(X*)是X的友元函数,实现对X的成员i加1,类Z是类X的友元类,其成员函数f(X*)实现对X的成员i加5,函数h(X*)是X的友元函数,实现对X的成员i加10。在一个文件中定义和实现类,在另一个文件中实现main()函数。解: #include "my_x_y_z.h"void main
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 设备刷漆防腐工程施工方案
- 技能大赛总结发言稿
- 河南道路花箱护栏施工方案
- 社会实践领导发言稿
- 家长会小学生发言稿
- 2025年COD自动在线监测仪项目建议书
- 培训心得发言稿
- 供应商发言稿
- 中考家长发言稿
- 四年级家长教育会
- 2025届高考语文二轮复习语文备考策略
- 部编版语文小学二年级下册第一单元集体备课(教材解读)
- 2020年同等学力申硕《计算机科学与技术学科综合水平考试》历年真题及答案
- 出生证警示教育培训
- 通信工程建设标准强制性条文汇编(2023版)-定额质监中心
- 高等传热学全册课件
- (正式版)JBT 11270-2024 立体仓库组合式钢结构货架技术规范
- 最全全国各省市县名称
- 2024年《滕王阁序》原文及翻译
- 部编版小学语文四年级下册单元试卷含答案(全册)
- 江苏省废矿物油回收利用行业环境管理要求
评论
0/150
提交评论