今天做的一个题,问你输出是什么: #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:一个基础的一时弄错了,记住了,先构造基类,析构是相反的过程。

评论