#include <stdio.h> #include <iostream> using namespace std; class Parent{ public: virtual void func(){printf("parent");} }; class Child : public Parent{ public: void func(){printf("child");} }; int main(){ Parent* parent; parent = new Child(); parent->func(); cout << "\n\n\n"; return 0; };
virtual付けていると出力はchild virtual付けてないと出力はparent 親のポインタに子供を入れて、関数呼び出したときにどちらが呼ばれるかが、 virtualの有無で決まる。