C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++での関数のオーバーロードとオーバーライドの違い


この投稿では、C++での関数のオーバーロードと関数のオーバーライドの違いを理解します。

オーバーロード

  • オーバーロード中にキーワードは使用されません。

  • プロトタイプは、パラメータの数またはタイプのみが異なります。

  • コンパイル時に発生します。

  • コンストラクターはオーバーロードできます。

  • デストラクタをオーバーロードすることはできません。

  • 早期バインディングを実現するために使用できます。

  • 呼び出される関数のバージョンは、使用されているパラメーターの数またはタイプによって決まります。

  • 関数は、同じ名前、異なる数、またはタイプのパラメーターで再定義されます。

オーバーライド

  • プロトタイプはずっと同じです。

  • 実行時に発生します。

  • 仮想機能をオーバーライドすることはできません。

  • デストラクタはオーバーライドできます。

  • オーバーライドは、遅延バインディングとも呼ばれます。

  • オーバーライドされる関数の前には、基本クラスの「virtual」キーワードがあります。

  • クラスのオブジェクトのアドレスは、関数がポインタによって呼び出されるポインタに割り当てられます。

  • 関数が定義されると、メインクラスでは「virtual」キーワードが前に付きます。

  • 同じ関数が、「out」キーワードを使用して派生クラスで再定義されます。


  1. 新しい演算子とC++の新しい演算子の違いは?

    C ++では、新しいオブジェクトを作成するときに、メモリにメモリブロックを作成する必要があります。次に、コンストラクタを呼び出してメモリブロックを初期化します。 newキーワードを使用してメモリ要素を作成できます。この新しいオペレーターは、2つの連続したタスクを実行しています。ただし、演​​算子newは、メモリ空間を作成するだけです。 新しいキーワード new演算子は特殊なタイプの演算子であり、ヒープセクションでのメモリ割り当ての要求を示します。十分なメモリが利用可能な場合、新しいオペレータのみがメモリをポインタ変数に初期化します。通常のnewkeywordを使用してオブジェクトを作成すると

  2. C#でのメソッドと関数の違い

    メソッドと関数はC#でも同じです。 ただし、メソッドはC#で使用され、指定されたクラスを介して動作する関数です。メソッドは、一緒にタスクを実行するステートメントのグループです。すべてのC#プログラムには、Mainという名前のメソッドを持つクラスが少なくとも1つあります。 以下は、C#でメソッドを作成する方法を示す簡単な例です。 例 class NumberManipulator {    public int FindMax(int num1, int num2) {       /* local variable declaration