一家软件公司的应聘题。我觉得不错!大家可以看看。

heyijpn 2001-09-03 11:08:06

下列代码有无错误,如果有错误请指出,并改正,同时说明错误原因。
class CBase
{
public:
void a();
void b();
};
void CBase::b()
{
a();
}
class CChild: public CBase
{
public:
void a();
};

void CChild::a()
{
printf("class CChild::a()/n");
}

int main(int argc,char * argv[])
{
CChild child;
child.b()

}

...全文
2839 90 打赏 收藏 转发到动态 举报
写回复
用AI写文章
90 条回复
切换为时间正序
请发表友善的回复…
发表回复
ckk 2001-09-09
  • 打赏
  • 举报
回复
不能是=0;
如下就可以了
class CBase
{
public:
virtual void a();
void b();
};
水清无鱼 2001-09-09
  • 打赏
  • 举报
回复
改a()为virtual void a()=0;
Alpha1997 2001-09-08
  • 打赏
  • 举报
回复
因为中国的软件公司看重的是这种技巧,所以国内的软件公司....
stoneyrh 2001-09-07
  • 打赏
  • 举报
回复
肯定是通不过的,不过要改正也容易。
编译一下不就行了。
tsl_first 2001-09-06
  • 打赏
  • 举报
回复
我是不行了!
heyijpn 2001-09-06
  • 打赏
  • 举报
回复
up
Hover 2001-09-06
  • 打赏
  • 举报
回复
GZ
baili 2001-09-05
  • 打赏
  • 举报
回复
1.声明CBase::a()为纯虚函数
virtual void a()=0;(为什么有人说声明纯虚函数用“==”?)
2.给main()函数添加一个返回值

我想出题人的目的就是看你对虚函数的概念是否清楚吧
ilovevc 2001-09-05
  • 打赏
  • 举报
回复
compile 应该没有问题,但是在link的时候会出错(找不到实现处)。
ray2_ls 2001-09-05
  • 打赏
  • 举报
回复
gz
lance 2001-09-05
  • 打赏
  • 举报
回复
即使CBase的a()定义成虚函数且实现,若

int main(int argc,char * argv[])
{
CChild child;
child.b()

}
也不会输出class CChild::a()


我c++不熟
foobarren 2001-09-05
  • 打赏
  • 举报
回复
1. 加一句#include "stdio.h"
2。最后一句加“;”
3。增加base::a()例
void CBase::a()
{
printf("class CBase::a()\n");
}
qian_x_j 2001-09-05
  • 打赏
  • 举报
回复
I am sorry.
最近我看java多,是我错了。
C++中 CChild child = new CChild();是错的。
CChild child;已经实例化了,new CChild()在C++中返回的是指针。
顶多CChild *child = new CChild();才对。

对不起大家了。:(
linwei_bupt 2001-09-05
  • 打赏
  • 举报
回复
这道题我想考点应该在输出结果上,
问最终结果打出什么,如果想调用
class CChild::a()应该怎么办
yancey 2001-09-05
  • 打赏
  • 举报
回复
我他妈的最讨厌面试还要做题的公司
liuwenbin 2001-09-05
  • 打赏
  • 举报
回复
1. a()未定义,编译肯定通不过
2. main()中没有返回值
chenangle 2001-09-05
  • 打赏
  • 举报
回复
gz
infoker 2001-09-05
  • 打赏
  • 举报
回复
我想应该看一下权威的c++标准,然后再多用几种编译器试一下,可能会发现各种编译器兼容性上会有些问题,有谁知道那种c++编译器是完全按照标准做的,至少vc和bcb就不完全一样
netkid 2001-09-05
  • 打赏
  • 举报
回复
Compiling...
a.cpp
c:\Temp\test\a.cpp(28) : warning C4508: 'main' : function should return a value; 'void' return type assumed
Linking...
a.obj : error LNK2001: unresolved external symbol "public: void __thiscall CBase::a(void)" (?a@CBase@@QAEXXZ)
Debug/test.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

test.exe - 2 error(s), 1 warning(s)
lyneville 2001-09-05
  • 打赏
  • 举报
回复
gz
加载更多回复(70)

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧