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

C++での抽象化


抽象化には、関連情報のみを外界に提供し、背景の詳細​​を隠すことが含まれます。プログラミングのためのインターフェースと実装の分離に依存しています。

クラスはC++で抽象化を提供します。これらは、外部の世界がデータを操作し、残りのクラス構造を自分自身に保持するためのパブリックメソッドを提供します。そのため、ユーザーは、クラスが内部でどのように実装されているかを知らなくても、必要に応じてクラスを使用できます。

クラスを使用してC++で抽象化を実装するプログラムは次のとおりです。

#include <iostream>
using namespace std;
class Abstraction {
   private:
   int length, breadth;
   public:
   void setValues(int l, int b) {
      length = l;
      breadth = b;
   }
   void calcArea() {
      cout<<"Length = " << length << endl;
      cout<<"Breadth = " << breadth << endl;
      cout<<"Area = " << length*breadth << endl;
   }
};
int main() {
   Abstraction obj;
   obj.setValues(5, 20);
   obj.calcArea();
   return 0;
}

出力

Length = 5
Breadth = 20
Area = 100

上記のプログラムでは、クラスAbstractionの長さと幅はプライベート変数です。これらの変数を初期化し、長さと息を掛けて面積を計算するパブリック関数があります。したがって、このクラスは抽象化を示します。このためのコードスニペットは次のとおりです。

class Abstraction {
   private:
   int length, breadth;
   public:
   void setValues(int l, int b) {
      length = l;
      breadth = b;
   }
   void calcArea() {
      cout<<"Length = " << length << endl;
      cout<<"Breadth = " << breadth << endl;
      cout<<"Area = " << length*breadth << endl;
   }
};

関数main()では、最初に抽象化タイプのオブジェクトが定義されます。次に、関数setValues()が値5および20で呼び出されます。最後に、これらの値と領域は、関数calcArea()を使用して表示されます。このためのコードスニペットは次のとおりです。

Abstraction obj;
obj.setValues(5, 20);
obj.calcArea();

  1. 最大ベンド数のC++パス長

    二分木が与えられる問題を解決するため。次に、曲がりの数が最大のパスを見つける必要があります。つまり、パスの方向が左から右に、またはその逆に変化する場合、たとえば、曲がりが考慮されます 入力- 出力- 6 このアプローチでは、ツリーをトラバースして、以前の動きを追跡します。方向が変わった場合は、曲げカウントを更新するだけで、最大値が見つかります。 解決策を見つけるためのアプローチ このアプローチでは、すべてのパスをトラバースし、回答を更新するベンドの最大数を見つけます。 例 #include <bits/stdc++.h> using namespace std; s

  2. C++のリンクリストでループの長さを見つける

    この問題では、ループを含む可能性のあるリンクリストが表示されます。私たちのタスクは、リンクリストでループの長さを見つけることです。 問題の説明: ループが含まれている場合はループ内のノード数をカウントする必要があります。それ以外の場合は-1を返します。 問題を理解するために例を見てみましょう。 入力: リンクリスト: 出力: 8 ソリューションアプローチ この問題を解決するには、まずリンクリストにループが含まれているかどうかを確認する必要があります。これを確認するためのアプローチは、フロイドの循環検出アルゴリズムを使用することです。 フロイドの循環検出アルゴリズム