工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> C言語

C++ コンストラクター

C++ コンストラクタ

このチュートリアルでは、ヘルプの例を使用して C++ コンストラクターとその型について学習します。

コンストラクターは、オブジェクトの作成時に自動的に呼び出される特別なタイプのメンバー関数です。

C++ では、コンストラクターはクラスと同じ名前を持ち、戻り値の型はありません。たとえば、

class  Wall {
  public:
    // create a constructor
    Wall() {
      // code
    }
};

ここで、関数 Wall() クラス Wall のコンストラクタです .コンストラクタ


C++ デフォルト コンストラクタ

パラメータのないコンストラクタは、デフォルト コンストラクタと呼ばれます。 .上記の例では、Wall() はデフォルトのコンストラクタです。


例 1:C++ のデフォルト コンストラクタ

// C++ program to demonstrate the use of default constructor

#include <iostream>
using namespace std;

// declare a class
class  Wall {
  private:
    double length;

  public:
    // default constructor to initialize variable
    Wall() {
      length = 5.5;
      cout << "Creating a wall." << endl;
      cout << "Length = " << length << endl;
    }
};

int main() {
  Wall wall1;
  return 0;
}

出力

Creating a Wall
Length = 5.5

ここで、wall1 オブジェクトが作成され、Wall() コンストラクターが呼び出されます。 長さを設定します オブジェクトの変数を 5.5 に .

注: クラスでコンストラクターを定義していない場合、C++ コンパイラーは、空のコードとパラメーターのないデフォルトのコンストラクターを自動的に作成します。


C++ パラメーター化コンストラクター

C++ では、パラメーターを持つコンストラクターは、パラメーター化されたコンストラクターと呼ばれます。これは、メンバー データを初期化するための推奨される方法です。


例 2:C++ パラメーター化コンストラクター

// C++ program to calculate the area of a wall

#include <iostream>
using namespace std;

// declare a class
class Wall {
  private:
    double length;
    double height;

  public:
    // parameterized constructor to initialize variables
    Wall(double len, double hgt) {
      length = len;
      height = hgt;
    }

    double calculateArea() {
      return length * height;
    }
};

int main() {
  // create object and initialize data members
  Wall wall1(10.5, 8.6);
  Wall wall2(8.5, 6.3);

  cout << "Area of Wall 1: " << wall1.calculateArea() << endl;
  cout << "Area of Wall 2: " << wall2.calculateArea();

  return 0;
}

出力

Area of Wall 1: 90.3
Area of Wall 2: 53.55

ここでは、パラメーター化されたコンストラクター Wall() を作成しました。 2 つのパラメーターがあります:double lendouble hgt .これらのパラメーターに含まれる値は、メンバー変数の初期化に使用されます length 高さ .

Wall のオブジェクトを作成すると クラスでは、メンバー変数の値を引数として渡します。このコードは次のとおりです:

Wall wall1(10.5, 8.6);
Wall wall2(8.5, 6.3);

このようにメンバー変数が初期化されたので、calculateArea() で壁の面積を計算できるようになりました。 関数。


C++ コピー コンストラクター

C++ のコピー コンストラクターは、あるオブジェクトのデータを別のオブジェクトにコピーするために使用されます。


例 3:C++ コピー コンストラクター

#include <iostream>
using namespace std;

// declare a class
class Wall {
  private:
    double length;
    double height;

  public:

    // initialize variables with parameterized constructor
    Wall(double len, double hgt) {
      length = len;
      height = hgt;
    }

    // copy constructor with a Wall object as parameter
    // copies data of the obj parameter
    Wall(Wall &obj) {
      length = obj.length;
      height = obj.height;
    }

    double calculateArea() {
      return length * height;
    }
};

int main() {
  // create an object of Wall class
  Wall wall1(10.5, 8.6);

  // copy contents of wall1 to wall2
  Wall wall2 = wall1;

  // print areas of wall1 and wall2
  cout << "Area of Wall 1: " << wall1.calculateArea() << endl;
  cout << "Area of Wall 2: " << wall2.calculateArea();

  return 0;
}

出力

Area of Wall 1: 90.3
Area of Wall 2: 90.3

このプログラムでは、コピー コンストラクターを使用して Wall の 1 つのオブジェクトの内容をコピーしました。 クラスから別のクラスへ。コピー コンストラクターのコードは次のとおりです。

Wall(Wall &obj) {
  length = obj.length;
  height = obj.height;
}

このコンストラクタのパラメータには Wall のオブジェクトのアドレスがあることに注意してください クラス。

次に、obj の変数の値を割り当てます object を、コピー コンストラクターを呼び出すオブジェクトの対応する変数に渡します。これが、オブジェクトの内容がコピーされる方法です。

main() で 、次に 2 つのオブジェクト wall1 を作成します と wall2 wall1 の内容をコピーします wall2 へ :

// copy contents of wall1 to wall2
Wall wall2 = wall1;

ここでは、wall2 wall1 のアドレスを渡して、オブジェクトのコピー コンストラクタを呼び出します。 引数としてのオブジェクト、つまり &obj = &wall1 .

注意 :コンストラクターは、主にオブジェクトの初期化に使用されます。また、オブジェクトの作成時にデフォルト コードを実行するためにも使用されます。


C言語

  1. C# コンストラクター
  2. C# コンストラクターのオーバーロード
  3. C++ データ型
  4. C++ 演算子
  5. C++ コメント
  6. C++ クラス テンプレート
  7. Java コンストラクター
  8. Java-コンストラクター
  9. C++ の概要
  10. C++ 定数/リテラル
  11. C++ の演算子