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

仮想関数はC++でどのように実装されていますか?


C ++の仮想関数は、派生クラスオブジェクトの種類を知らなくても、基本クラスポインターのリストを作成し、任意の派生クラスのメソッドを呼び出すために使用されていました。仮想関数は、実行時に遅く解決されます。

これがC++プログラムでの仮想関数の実装です-

#include <iostream>
using namespace std;
class B {
   public:
      virtual void s() { //virtual function 
         cout<<" In Base \n";
      }
};
class D: public B {
   public:
      void s() {
         cout<<"In Derived \n";
      }
};
int main(void) {
   D d; // An object of class D
   B *b= &d; // A pointer variable of type B* pointing to d
   b->s(); // prints"D::s() called"
   return 0;
}
を出力します

出力

In Derived

  1. C ++の関数にオブジェクトを渡す方法は?

    オブジェクトを関数に渡すには4つの方法があります。クラスXがあり、それを関数funに渡したいとしましょう。次に、- 値渡し これにより、関数スコープにオブジェクトの浅いローカルコピーが作成されます。ここで変更したものは、渡されたオブジェクトには反映されません。たとえば、 宣言 void fun(X x); 電話 X x; fun(x); 参照渡し これにより、オブジェクトへの参照が関数に渡されます。ここで変更したものは、渡されたオブジェクトに反映されます。オブジェクトのコピーは作成されません。たとえば、 宣言 void fun(X &x); 電話 X

  2. C#の仮想関数とは何ですか?

    virtualキーワードは、メソッド、プロパティ、インデクサー、またはイベントを変更する場合に役立ちます。継承されたクラスに実装したいクラスで関数を定義する場合は、仮想関数を使用します。仮想関数は、継承されたクラスごとに異なる方法で実装でき、これらの関数の呼び出しは実行時に決定されます。 以下は仮想関数です public virtual int area() { } これは、仮想関数の操作方法を示す例です- 例 using System; namespace PolymorphismApplication {    class Shape {