C++での仮想関数とランタイムポリモーフィズム
C ++の仮想関数は、派生クラスオブジェクトの種類を知らなくても、基本クラスポインターのリストを作成し、任意の派生クラスのメソッドを呼び出すために使用します。仮想関数は、実行時に遅く解決されます。
仮想関数の主な用途は、ランタイムポリモーフィズムを実現することです。ランタイムポリモーフィズムは、基本クラスタイプのポインター(または参照)を介してのみ実現できます。また、基本クラスポインタは、派生クラスのオブジェクトだけでなく、基本クラスのオブジェクトも指すことができます。上記のコードでは、基本クラスのポインタ「b」には、派生クラスのオブジェクト「d」のアドレスが含まれています。
サンプルコード
#include<iostream> using namespace std; class B { public: virtual void s() { 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 of type B* pointing to d b->s(); // prints "D::s() called" return 0; }
出力
In Derived
-
C++の天井関数と床関数
天井関数 ceil関数は、その値以上の可能な限り最小の整数値を返します。この関数は、C++言語の「cmath」ヘッダーファイルで宣言されています。セル値が計算されるのは単一の値です。変数のデータ型は、double / float /longdoubleのみである必要があります。 これがC++言語でのceil関数の構文です double ceil(double x); float ceil(float x); これがC++言語のceil関数の例です 例 #include <iostream> #include <cmath> using namespace std;
-
C++でのフレンドクラスと関数
クラスのフレンド関数はそのクラスのスコープ外で定義されていますが、クラスのすべてのプライベートメンバーと保護されたメンバーにアクセスする権利があります。フレンド関数のプロトタイプはクラス定義に表示されますが、フレンドはメンバー関数ではありません。 フレンドは、関数、関数テンプレート、メンバー関数、またはクラスまたはクラステンプレートにすることができます。この場合、クラス全体とそのすべてのメンバーがフレンドになります。 関数をクラスのフレンドとして宣言するには、次のように、クラス定義の関数プロトタイプの前にキーワードfriendを付けます- class Box { double width;