使用VC6打开考生文件夹下的工程test8_1,此工程包含一个源程序文件test8_l.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下: f1 function of derive f2 function of base

admin2009-01-15  51

问题 使用VC6打开考生文件夹下的工程test8_1,此工程包含一个源程序文件test8_l.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:
   f1 function of derive
   f2 function of base
   f4 function of base
   源程序文件test8_1.cpp清单如下;
       #include<iostream.h>
        class base
       {
       public:
       /*********found**********/
        void f1(){cout<<"f1 function of base"<<endl;}
        virtual void f2(){cout<<"f2 function of base"<<endl;)
        virtual void f3(){cout<<"f3 function of base"<<endl;)
        void f4(){cout<<"f4 function of base"<<endl;)
       };
       /*******+*found**********/
       class derive::public base
       {
        void f1(){cout<<"f1 function of derive"<<endl;)
        void f2(int X){cout<<"f2 function of derive"<<endl;)
        void f4(){cout<<"f4 function of derive"<<endl;)
       };
       void main()
       {
        base *p;
        derive obj2;
       /******+**found**********/
        p=obj2;
        p->fl();
        p->f2();
        p->f4();
       }

选项

答案(1)错误:void f1(){cout<<"f1 function of base"<<end1;) 正确:virtual void fl(){cout<<"fl function of base"<<end1;} (2)错误:class derive::public base 正确:class derive:public base (3)错误:p=obj2; 正确:p=&obj2;

解析 (1)主要考查考生对于虚函数的深刻理解,虚函数是动态联编的基础,也是实现多态性的重要方法,它可以根据不同的情况动态的选择执行哪一个函数。在派生类中实现虚函数应该满足与基类的同名函数完全相同,并且使用关键字virtual修饰,本题中由输出结果中的fl function of derive可知,必须将基类base的成员函数n()定义为虚函数:
(2)主要考查考生对派生类定义格式的掌握,应该使用“:”后面是继承列表,而“::”是作用域符;
(3)主要考查点为类对象的定义与使用,p是一个指针类型的变量,给它的赋值应是一个地址,即使用取地址操作符&。
转载请注明原文地址:https://kaotiyun.com/show/MOID777K
0

最新回复(0)