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

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


クラスは、オブジェクト指向の概念をサポートし、ユーザー定義のデータ型であるため、C++の主要な機能です。クラスはオブジェクトの仕様を提供し、データ変数と、単一のパッケージでデータを操作するための関数を含みます。

クラス定義

クラス定義は、キーワードclassで始まり、次にクラス名で始まります。その後、クラス本体が定義されます。中括弧で囲まれています。クラス定義には、セミコロンまたはその後の定義のリストが含まれている必要があります。

C++でのクラス定義の例は次のとおりです。

class student {
   int rollno;
   char name[50];
   float marks;
};

上記のクラスには、生徒の詳細、つまりロール番号、名前、マークが含まれています。

オブジェクト定義

クラスが定義されるとき、それは単なる仕様です。その時点で割り当てられているメモリまたはストレージはありません。したがって、オブジェクトはクラスから作成され、クラスで定義されたデータと関数にアクセスします。クラスは、オブジェクトのブループリントと呼ぶこともできます。

クラスの生徒のオブジェクトの宣言は次のように与えられます。

Student stu1;

C++でクラスとオブジェクトをデモンストレーションするプログラムは次のとおりです。

#include <iostream>
using namespace std;
class Student {
   public:
   int rollno;
   char name[50];
   float marks;
   void display() {
      cout<<"Roll Number: "<< rollno <<endl;
      cout<<"Name: "<< name <<endl;
      cout<<"Marks: "<< marks <<endl;
   }
};
int main() {
   Student stu1 = {1, "Harry", 91.5};
   stu1.display();
   return 0;
}

出力

Roll Number: 1
Name: Harry
Marks: 91.5

上記のプログラムでは、最初にクラスの生徒が定義されます。ロール番号、名前、マークなど、生徒に関する詳細が含まれています。また、すべての学生の詳細を表示するメンバー関数display()も含まれています。これを示すコードスニペットは次のとおりです。

class student {
   public:
   int rollno;
   char name[50];
   float marks;
   void display() {
      cout<<"Roll Number: "<< rollno <<endl;
      cout<<"Name: "<< name <<endl;
      cout<<"Marks: "<< marks <<endl;
   }
};

関数main()では、クラスstudentのオブジェクトがstudentdetailsで定義されます。次に、これらの詳細は、display()への関数呼び出しで表示されます。これは次のように見ることができます。

student stu1 = {1, "Harry", 91.5};
stu1.display();

  1. C++でのフレンドクラスと関数

    クラスのフレンド関数はそのクラスのスコープ外で定義されていますが、クラスのすべてのプライベートメンバーと保護されたメンバーにアクセスする権利があります。フレンド関数のプロトタイプはクラス定義に表示されますが、フレンドはメンバー関数ではありません。 フレンドは、関数、関数テンプレート、メンバー関数、またはクラスまたはクラステンプレートにすることができます。この場合、クラス全体とそのすべてのメンバーがフレンドになります。 関数をクラスのフレンドとして宣言するには、次のように、クラス定義の関数プロトタイプの前にキーワードfriendを付けます- class Box { double width;

  2. C ++の変数のストレージクラスとは何ですか?

    ストレージクラスは、C ++プログラム内の変数や関数のスコープ(可視性)と存続期間を定義します。これらの指定子は、変更するタイプの前にあります。 C++プログラムで使用できる次のストレージクラスがあります。 自動 登録 静的 外部 可変 Cでは、自動ストレージクラス指定子を使用すると、自動ストレージを使用して変数を明示的に宣言できます。自動ストレージクラスは、ブロック内で宣言された変数のデフォルトです。自動ストレージを持つ変数xは、xが宣言されたブロックが終了すると削除されます。 自動ストレージクラス指定子は、ブロックで宣言された変数の名前または関数パラメーターの名前にのみ適用できます