设为首页 加入收藏

TOP

2018年9月全国计算机二级考试C++程序改错题
2018-05-05 06:04:14 】 浏览:199
Tags:2018年 9月 全国 计算机 二级 考试 程序 错题

使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果为


TC1


TC2


注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。


试题程序:


#include


#include  structTCO


{


//********error********


virtualvoidfun();


};


classTCl:publicTCO


{


voidfun()


{


cout<<"TCl"<  }


};


classTC2:publicTCO


{


voidfun()


{


cout<<"TC2"<  }


};


voidmain()


{


TCO"P;


TClobj1;


TC2obj2;


//********error********


p=*obj1;


p->fun();


//********error********


p=*obj2;


p->fun();


return;


}


答案与解析:


(1)应改为“virtualvoidfun()=0;”。


(2)应改为“p=&obj1;”。


(3)应改为“p=&obj2;”。


【解析】如果在基类中不使用这个虚函数,其返回值也是没有意义的,它应该被定义为纯虚函数。所以虚函数fun应该是纯虚函数,也就是声明虚函数时初始化为0的函数。即第2处的“virtualvoidfun()=0;”。第2处的P为指针变量,将对象obj1赋值给P,实际上蹙P指向对象obj1的地址,所以将“p=*obj1;”修改为“P=&obj1;”。第3处的“P=*obj2;”修改为“p=&obj2;”。



编程开发网
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇2018年9月计算机二级C++考试考前.. 下一篇2018年9月全国计算机二级考试C++..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

最新文章

热门文章

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目

array(4) { ["type"]=> int(8) ["message"]=> string(24) "Undefined variable: jobs" ["file"]=> string(32) "/mnt/wp/cppentry/do/bencandy.php" ["line"]=> int(214) }