今天做的一个题,问你输出是什么:
#include <stdio.h>
class B
{
public:
void f()
{
printf("B.f\n");
g();
}
virtual void g()
{
printf("B.g\n");
}
};
class D : public B
{
public:
void f()
{
printf("D.f\n");
}
void g()
{
printf("D.g\n");
}
};
int main()
{
B *p=new D;
p->f();
delete p;
getchar();
return 0;
}
原来真没看到过,赌了一把,回来用VC、DevC++编译了发现。。。
PS:一个基础的一时弄错了,记住了,先构造基类,析构是相反的过程。
评论