C++ のインターフェイス

抽象クラスは、C++ で抽象化を実現する方法です。 C++ での抽象化は、内部の詳細を隠し、機能のみを表示するプロセスです。抽象化は 2 つの方法で実現できます:

<オール>
  • 抽象クラス
  • インターフェース
  • 抽象クラスとインターフェースはどちらも、抽象化に必要な抽象メソッドを持つことができます。

    抽象クラスが必要な理由

    実際の例を使ってこれを理解しましょう。動物が眠る、動物が音を立てるなどのクラスがあるとしましょう。今のところ、これら 2 つの動作のみを考慮し、2 つの関数 sound() を持つクラス Animal を作成しています。 と sleeping() .

    さて、動物の鳴き声は、猫が「ニャー」、犬が「ワン」と異なることがわかりました。 Animal でどのような実装を行うか 関数 sound() のクラス 、これを行う唯一の正しい方法は、この関数を純粋に抽象化して、 Animal クラスで実装する必要がないようにすることですが、 Animal クラスを継承するすべてのクラスがこの関数を実装する必要があります。このようにして、すべての動物に音があることを確認していますが、動物には独自の音があります.

    #include <iostream>  
    using namespace std;  
     class Shape    
    {    
        public:   
        virtual void draw()=0;    
    };    
     class Rectangle : Shape    
    {    
        public:  
         void draw()    
        {    
            cout < <"drawing rectangle..." < <endl;    
        }    
    };    
    class Circle : Shape    
    {    
        public:  
         void draw()    
        {    
            cout <<"drawing circle..." < <endl;    
        }    
    };    
    int main( ) {  
        Rectangle rec;  
        Circle cir;  
        rec.draw();    
        cir.draw();   
       return 0;  
    }

    出力:

    drawing rectangle...
    drawing circle...

    抽象クラスのルール

    <オール>
  • これまで見てきたように、純粋仮想関数を持つクラスはすべて は抽象クラスです。
  • 子クラスのインスタンスへの基本抽象クラス ポイントのポインタと参照を作成できます。
  • 抽象クラスはコンストラクタを持つことができます。
  • 派生クラスが親クラスの純粋仮想関数を実装していない場合、派生クラスは抽象クラスになります。
  • Previous:c でのカプセル化 ++Next:C でのフレンド クラスとフレンド関数 ++PrevHomeNext


    No