问题 填空题

使用VC6打开考生文件夹下的工程test17_1,此工程包含一个源程序文件test17_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下: 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>>"Car message\n";} 正确:void message(void){eout<<"Car message\n";} (3)错误:unicycle.message(); 正确:unicycle->message(); (1)主要考查考生对于虚函数使用规则的掌握,要实现对函数message的动态联编应该使用虚函数,否则产生的是静态联编,调用的函数输出结果就与要求不符; (2)主要考查考生对于流输出操作的掌握,该处错误的使用了流输入操作; (3)主要考查考生是否能分清对象和对象指针,对象指针使用“->”调用成员函数,而对象使用“.”调用成员函数。

解答题
解答题