一句话总结:注意实例生成过程,注意多态的调用。
#include <stdio.h>
struct A{
void foo(){printf("foo\n");}
virtual void bar(){printf("bar\n");}
A(){bar();}
};
struct B:A{
void foo(){printf("b_foo\n");}
void bar(){printf("b_bar\n");}
};
int main(int argc, char const *argv[])
{
A *p=new B;
p->foo();
p->bar();
return 0;
}
结果:
bar
foo
b_bar