C++ で次の正確な用語を取得したいと思います。
次のおもちゃの例を考えてみてください。
class A{
public:
virtual void f(){ std::cout << "This is A" << std::endl; };
};
class B: public A{
public:
virtual void f(){ std::cout << "This is B" << std::endl; };
};
int main(int argc, char** argv){
A* ptr = new A(); //Base class pointer pointing to base class object
ptr->f(); //Base class method is called
delete ptr;
ptr = new B(); ////Base class pointer pointing to derived class object
ptr->f(); //Derived class method is called
delete ptr;
return 0;
}
出力は次のとおりです。これは A です これは B です
これに関する正確な C++ 用語を知りたいです。それはポリモーフィズムかメソッドのオーバーライドか何かですか?
主なことは、基本クラスのポインターを使用していることです。ポインターが基本クラス オブジェクトを指す場合、基本クラス メソッドが呼び出されます。派生クラス オブジェクトを指す場合、両方のクラスでメソッドが virtual として宣言されている場合、派生クラス メソッドが呼び出されます。
ありがとう