Skip to main content

仮想クラスとは何ですか?

Virtual Classは、メモリに1回だけ割り当てられるクラスであるため、そのクラスの子供はメモリで確立された親クラスの1つのコピーのみを使用します。クラスは、共通の特性または属性を共有するオブジェクトのグループです。クラス仮想を作成すると、2番目以上の世代の親クラスが共通の先祖基地クラスから派生したときに、オブジェクト指向のプログラミング言語に複数の継承を使用する能力を提供します。参照されるコンピュータープログラミング言語に応じて、クラスの仮想キーワード、同様のキーワード、またはセマンティクスを使用して、特定のクラスが仮想と見なされることを意味します。子どものクラスを同時に複数の親クラスから派生させることができる場合です。C ++のようなプログラミング言語では、クラスは両方の親クラスのすべてのメンバーデータとメンバー機能を一度に継承し、親データと関数の両方のセットにアクセスできます。多重継承をサポートする他の言語には、Perl、Python、TCL、およびEiffelが含まれます。これはダイヤモンド問題と呼ばれます。この名前は、この状況で階層がどのように見えるかに起因する名前です。コンパイラプログラムが、祖父母の2つの親クラスから作られた孫クラスなど、クラスをインスタンス化しようとすると、祖父母の2つのコピーがメモリで作成されます。memory祖父母の複数のコピーによって引き起こされるあいまいさのため、コンパイラは祖父母が祖父母のデータまたは機能にアクセスするために使用する祖父母のコピーを確認することができません。この状況を改善するために、C ++では、祖父母は両親を宣言するときに仮想クラスになります。これにより、コンパイラは両親が共有する祖父母のコピーを1つだけ作成します。祖父母が仮想クラスになったら、コンパイラは祖父母のコピーが1つしかないため、孫が祖父母にどのようにアクセスするかを決定するのに問題はありません。将来的には、はるかに大きな階層のベースになります。仮想クラスの適切な利用により、クラスの階層により、開発において大きな緯度が得られます。ただし、見つけるのが難しいエラーを引き起こす可能性があります。ソリッドコンピュータープログラミングエンジニアリングの原則の研究は、不適切なプログラム組織からの予期しない副作用が発生しないようにするのに役立ちます。