#include <stdio.h> #include <stdlib.h> #include <conio.h> class A { public: void myfunc() { printf("A myfunc!\n"); mytest(); } virtual void mytest() { printf("A mytest!\n"); } }; class B:public A { public: void myfunc() { printf("B myfunc!\n"); } virtual void mytest() { printf("B mytest!\n"); } }; void main() { class B Bb; ((class A*)&Bb)->myfunc(); ((class A)Bb).myfunc(); getch(); }
輸出code
A myfunc!對象
B myfunc!get
A myfunc!編譯器
A myfunc!io
緣由分析 在34行編譯器實現了隱式的拷貝構造 構造出一個A的對象編譯