デストラクターは C++ ポリモーフィズムにおいて重要であり、派生クラス オブジェクトが破棄されるときにメモリを適切にクリーンアップすることを保証します。ポリモーフィズムにより、異なる型のオブジェクトが同じメソッド呼び出しに応答できるようになります。デストラクターは、オブジェクトが破棄されてメモリを解放するときに自動的に呼び出されます。派生クラスのデストラクターは、基本クラスのデストラクターを呼び出して、基本クラスのメモリが確実に解放されるようにします。
C++ のポリモーフィズムにおけるデストラクターの役割
デストラクターは、C++ のポリモーフィズムにおいて、派生クラスのオブジェクトが適切な方法でメモリをクリーンアップするようにするための重要な役割を果たします。
ポリモーフィズムの概要
ポリモーフィズムとは、異なる型のオブジェクトが同じメソッド呼び出しに応答できるようにする機能です。 C++ では、これは継承と仮想関数によって実現されます。
デストラクター
デストラクターは、クラスに関連付けられた特別なメンバー関数で、そのクラスのオブジェクトが破棄されるときに自動的に呼び出されます。オブジェクトによって割り当てられたメモリまたはリソースを解放する責任があります。
ポリモーフィズムにおけるデストラクターの役割
派生クラスのオブジェクトが作成されると、派生クラスに固有のデータ メンバーを格納するためにメモリが割り当てられます。ただし、派生クラスのオブジェクトが破棄されると、基本クラスのメモリも解放する必要があります。デストラクターは、基本クラスのデストラクターを呼び出すことでこれを保証します。
実践例
次のコードを考えてみましょう:
class Base { public: Base() { std::cout << "Base constructed" << std::endl; } virtual ~Base() { std::cout << "Base destructed" << std::endl; } }; class Derived : public Base { public: Derived() { std::cout << "Derived constructed" << std::endl; } ~Derived() { std::cout << "Derived destructed" << std::endl; } }; int main() { Base* base = new Derived(); delete base; return 0; }
出力:
Base constructed Derived constructed Derived destructed Base destructed
この例では、Derived
类派生自 Base
类。当 Derived
对象通过 new
运算符被创建时,Derived
和 Base
构造函数都会被调用。当对象通过 delete
运算符被销毁时,Derived
析构函数会先被调用,释放 Derived
类的内存。然后,Base
析构函数会被调用,释放 Base
クラスのメモリです。
以上がC++ のポリモーフィズムにおいてデストラクターはどのような役割を果たしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。