1、填空题 1. 假定AB为一个类,则执行“AB a10;”语句时,系统自动调用该类的构造函数的次数为_。 答案:10 2.可以用p.a的形式访问派生类对象P的基类成员a,其中a是_。公有继承的公有成员 3.能作为重载函数的调用的依据是_。参数个数 、参数类型 4.在进行完任何C+流的操作后,都可以用C+流的有关成员函数检测流的状态;其中只能用于检测输入流是否结束状态的操作函数名称是_ eof 5.函数重载是指_。两个或两个以上的函数取相同的函数名,但形参的个数或类型不同 6.在派生类中重新定义虚函数时必须在 _ 方面与基类保持一致。参数个数 阅读程序例题【计算题】1分析以下程序的执行结果 #in
2、cludeclass Sample int x,y;public:Sample() x=y=0; Sample(int a,int b) x=a;y=b;Sample() if(x=y) cout“x=y”endl;else “x!=y”void disp() “x=”x“,y”=y;void main() Sample s1,s2(2,3);s1.disp();s2.disp();解:x=0,y=0 x=2,y=3 x!=y x=y2.分析以下程序的执行结果 int add(int x,int y) return x+y;int add(int x,int y,int z) return x
3、+y+z;int a=4,b=6,c=10;add(a,b),add(a,b,c)10,20 3.分析以下程序执行结果 double add(double x,double y) int a=4,b=6;double c=2.6,d=7.4;,add(c,d)10,10 4.分析以下程序执行的结果 Sample()x=y=0;Sample(int a,int b)x=a;x=,y=Sample s1,s2(1,2),s3(10,20);Sample *pa3=&s1,&s2,&s3;for(int i=0;idisp();x=1,y=2 x=10,y=20 5. 分析以下程序的执行结果:cla
4、ss base int n;base();base (int a) cout constructing base class endl;n=a;cout n= n base() cout destructing base class class subs : public base int m;subs(int a, int b) : base(a) constructing sub class m=b;m= m subs() cout destructing sub class void main () subs s(1,2);constructing base classn= 1const
5、ructing sub classm= 2destructing sub classdestructing base class 6.分析以下程序的执行结果:#include protected:int x;Sample() x=0;Sample(int val) x=val;void operator+() x+;class Derived:public Sample int y;Derived():Sample() y=0;Derived(int val1,int val2):Sample(val1) y=val2;void operator-() x-;y-; cout x y Deri
6、ved d(3,5);d.disp();d+;d.disp ();d-;x=3,y=5x=4,y=57 分析以下程序执行结果:class A A(char *s) cout s A() class B:public A B(char *sl,char *s2) :A(sl) s2 class C:C(char *sl,char *s2) :class D:public B,public C D(char *sl,char *s2,char *s3,char *s4) :B(sl,s2),C(sl,s3) s4 D d(class Aclass Bclass Cclass D);class B
7、class C class D 补充例题1.分析以下程序的执行结果 template T max(T x,T y) return (xy?x:y); coutmax(2,5)“,”max(3.5,2.8)解答:5,3.5 2分析以下程序的执行结果 int a=10,20,30,40,*pa=a;int *&pb=pa;pb+;*pa输出为:20 3.分析以下程序的执行结果 T abs(T x) 0?-x);abs(-3)abs(-2.6)输出为:3,2.6 4.分析以下程序的执行结果 char c1,c2;Sample(char a)c2=(c1=a)-32;c1“转换为”c2Sample a(a),b(ba.disp();b.disp();a转换为A b转换为B 5.分析以下程序的执行结果 int a;int &b=a; / 变量引用 b=10;“a=”aa=10 6.分析以下程序的执行结果 Sample();Sample(int a)x=a;Sample(Sample &a)x=a.x+ +10;void disp()cout Sample s1(2),s2(s1);x=3 / +运算的结果 x
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1