使用VC6打开考生文件夹下的工程test17_1,此工程包含一个源程序文件test17_1.唧,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下: Vehicle message Car message Vehicle mes

admin2009-01-15  54

问题 使用VC6打开考生文件夹下的工程test17_1,此工程包含一个源程序文件test17_1.唧,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:
   Vehicle message
   Car message
   Vehicle message
   源程序文件test17_1.cpp 清单如下:
     #include <iostream.h>
     class vehicle
     {
       int wheels;
       float weight;
     public:
     /*****************  found  *****************/
       void message(void){ cout<<"Vehicle message\n";}
     };
     class car:public vehicle
     {
       int passenger_load;
     public:
     /*****************  found *****************/
      void message (void){cout>>"Car message\n";}
     };
           class truck:public vehicle
     {
       int passenger_load;
       float payload;
     public:
       int passengers(void){return passenger_load;}
     };
     void main()
     {
      vehicle * unicycle;
      unicycle=new vehicle;
     /*****************  found  *****************/
      unicycle.message()
      delete unicycle;
      unicycle=new car;
      unicycle->message();
      delete unicycle;
      unicycle=new truck;
      unicycle->message();
      delete unicycle;
    }

选项

答案(1)错误:void message(void){cout<<"Vehicle message\n";} 正确:virtual void message(void){cout<<"Vehicle message\n";} (2)错误:void message(void){cout>>"Carmessage\n”;} 正确:void message(void){eout<<"Carmessage\n";} (3)错误:unicycle.message(); 正确:unicycle->message();

解析 (1)主要考查考生对于虚函数使用规则的掌握,要实现对函数message的动态联编应该使用虚函数,否则产生的是静态联编,调用的函数输出结果就与要求不符;
(2)主要考查考生对于流输出操作的掌握,该处错误的使用了流输入操作;
(3)主要考查考生是否能分清对象和对象指针,对象指针使用“->”调用成员函数,而对象使用“.”调用成员函数。
转载请注明原文地址:https://kaotiyun.com/show/uOID777K
0

最新回复(0)