C++の仮想関数キーワードの使い方は?
C++において、virtualキーワードは仮想関数を宣言するために使用されます。仮想関数とは、基底クラスで宣言された関数であり、派生クラスで再定義することができます。そして、基底クラスのポインタまたは参照を使用してその関数を呼び出すと、オブジェクトの実際の型に基づいて、基底クラスの仮想関数か派生クラスで再定義された関数かが呼び出されます。
以下は使用法です。
- 基底クラスで仮想関数を宣言する:
class Base {
public:
virtual void foo() {
// 基类中的虚函数定义
}
};
- 派生クラスで仮想関数を再定義する:
class Derived : public Base {
public:
void foo() override {
// 派生类中的重新定义的函数
}
};
C++11以降では、オーバーライドキーワードを使用して派生クラス内で仮想関数を明示的にマークすることで、コードの可読性と保守性を向上させることができます。
- 仮想関数を呼び出す際に、基底クラスのポインタや参照を使用する。
Base* ptr = new Derived();
ptr->foo(); // 调用派生类中重新定义的虚函数
前述の例では、基底クラスのポインタptrが派生クラスのオブジェクトを指す場合、ptr->foo()を呼び出すと、実際の型に基づいて、基底クラスの仮想関数または派生クラスで再定義された関数が呼び出されます。