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

C++ クラスとオブジェクト

C++ クラスとオブジェクト

このチュートリアルでは、オブジェクトとクラスについて、および例を使用して C++ でそれらを使用する方法について学習します。

前のチュートリアルでは、関数と変数について学びました。関連する関数とデータを 1 か所にまとめて、論理的に扱いやすくすることが望ましい場合があります。

長方形の部屋の長さ、幅、高さを保存し、その面積と体積を計算する必要があるとします。

このタスクを処理するために、length などの 3 つの変数を作成できます。 , 広さ 、および高さ 関数 calculateArea() とともに そして calculateVolume() .

ただし、C++ では、個別の変数と関数を作成するのではなく、これらの関連するデータと関数を 1 つの場所にラップすることもできます (オブジェクト を作成することにより)。 )。このプログラミング パラダイムは、オブジェクト指向プログラミングとして知られています。

オブジェクトを作成する前に それらを C++ で使用するには、まず クラス について学ぶ必要があります .


C++ クラス

クラスはオブジェクトの設計図です。

クラスは家のスケッチ(プロトタイプ)と考えることができます。床、ドア、窓などに関するすべての詳細が含まれています。これらの説明に基づいて家を建てます。家がオブジェクトです。

クラスを作成

クラスは、キーワード class を使用して C++ で定義されます。 その後にクラス名が続きます。

クラスの本体は中括弧内で定義され、最後にセミコロンで終了します。

class className {
   // some data
   // some functions
};

たとえば、

class Room {
    public:
        double length;
        double breadth;
        double height;   

        double calculateArea(){   
            return length * breadth;
        }

        double calculateVolume(){   
            return length * breadth * height;
        }

};

ここでは、Room という名前のクラスを定義しました .

変数 長さ , 広さ 、および高さ クラス内で宣言されたものは データ メンバー と呼ばれます .そして、関数 calculateArea() および calculateVolume() メンバー関数として知られています クラスの。


C++ オブジェクト

クラスが定義されるとき、オブジェクトの仕様のみが定義されます。メモリもストレージも割り当てられていません。

クラスで定義されたデータとアクセス関数を使用するには、オブジェクトを作成する必要があります。


C++ でオブジェクトを定義する構文

className objectVariableName;

Room のオブジェクトを作成できます クラス (上記の例で定義) は次のとおりです:

// sample function
void sampleFunction() {
    // create objects
    Room room1, room2;
}

int main(){
    // create objects 
    Room room3, room4;
}

ここでは、2 つのオブジェクト room1room2 Room の クラスは sampleFunction() で作成されます .同様に、オブジェクト room3room4 main() で作成されます .

ご覧のとおり、プログラムの任意の関数でクラスのオブジェクトを作成できます。クラス自体または他のクラス内でクラスのオブジェクトを作成することもできます。

また、1 つのクラスから必要な数のオブジェクトを作成できます。


C++ アクセス データ メンバーとメンバー関数

. を使用して、クラスのデータ メンバーとメンバー関数にアクセスできます。 (ドット) 演算子。たとえば、

room2.calculateArea();

これは calculateArea() を呼び出します Room 内の関数 オブジェクト room2 のクラス .

同様に、データ メンバーには次のようにアクセスできます。

room1.length = 5.5;

この場合、長さを初期化します room1 の変数 5.5 へ .


例 1:C++ プログラミングにおけるオブジェクトとクラス

// Program to illustrate the working of
// objects and class in C++ Programming

#include <iostream>
using namespace std;

// create a class
class Room {

   public:
    double length;
    double breadth;
    double height;

    double calculateArea() {
        return length * breadth;
    }

    double calculateVolume() {
        return length * breadth * height;
    }
};

int main() {

    // create object of Room class
    Room room1;

    // assign values to data members
    room1.length = 42.5;
    room1.breadth = 30.8;
    room1.height = 19.2;

    // calculate and display the area and volume of the room
    cout << "Area of Room =  " << room1.calculateArea() << endl;
    cout << "Volume of Room =  " << room1.calculateVolume() << endl;

    return 0;
}

出力

Area of Room =  1309
Volume of Room =  25132.8

このプログラムでは、Room を使用しました。 クラスとそのオブジェクト room1 部屋の面積と容積を計算します。

main() で 、長さの値を割り当てました , 広さ 、および高さ コード付き:

room1.length = 42.5;
room1.breadth = 30.8;
room1.height = 19.2;

次に、関数 calculateArea() を呼び出しました と calculateVolume() 必要な計算を実行します。

キーワード public の使用に注意してください プログラムで。これは、メンバーが公開され、プログラムからどこからでもアクセスできることを意味します。

必要に応じて、private を使用してプライベート メンバーを作成することもできます。 キーワード。クラスのプライベート メンバーには、クラス内からのみアクセスできます。例えば、

class Test {

private:
    int a;
    void function1() { }

public:
    int b;
    void function2() { }
}

ここで、a および function1() プライベートです。したがって、クラス外からアクセスすることはできません。

一方、bfunction2() プログラムのどこからでもアクセスできます。

パブリック キーワードとプライベート キーワードの詳細については、C++ クラス アクセス修飾子のチュートリアルをご覧ください。


例 2:C++ クラスで public と private を使用する

// Program to illustrate the working of
// public and private in C++ Class

#include <iostream>
using namespace std;

class Room {

   private:
    double length;
    double breadth;
    double height;

   public:

    // function to initialize private variables
    void initData(double len, double brth, double hgt) {
        length = len;
        breadth = brth;
        height = hgt;
    }

    double calculateArea() {
        return length * breadth;
    }

    double calculateVolume() {
        return length * breadth * height;
    }
};

int main() {

    // create object of Room class
    Room room1;

    // pass the values of private variables as arguments
    room1.initData(42.5, 30.8, 19.2);

    cout << "Area of Room =  " << room1.calculateArea() << endl;
    cout << "Volume of Room =  " << room1.calculateVolume() << endl;

    return 0;
}

出力

Area of Room =  1309
Volume of Room =  25132.8

上記の例は、クラス変数が非公開になっていることを除いて、最初の例とほぼ同じです。

変数は非公開になったため、main() から直接アクセスすることはできません .したがって、次のコードの使用は無効になります:

// invalid code
obj.length = 42.5;
obj.breadth = 30.8;
obj.height = 19.2;

代わりに、パブリック関数 initData() を使用します 関数パラメーター double len を介してプライベート変数を初期化する 、 double brth 、および double hgt .

オブジェクトとクラスの詳細については、次のトピックにアクセスしてください:


C言語

  1. C# クラスとオブジェクト
  2. C# の抽象クラスとメソッド
  3. C# 部分クラスと部分メソッド
  4. C# の封印されたクラスとメソッド
  5. C++ フレンド関数とフレンド クラス
  6. C++ クラス テンプレート
  7. Java クラスとオブジェクト
  8. C ++の構造とクラス
  9. 構造体とクラスの違い:C++ の例で説明
  10. C++ のストレージ クラス
  11. C++ 日付と時刻