Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

สมาชิกข้อมูลคงที่ใน C ++


สมาชิกข้อมูลสแตติกคือสมาชิกของคลาสที่ประกาศโดยใช้คีย์เวิร์ดคงที่ มีสมาชิกข้อมูลสแตติกในคลาสเพียงสำเนาเดียว แม้ว่าจะมีอ็อบเจ็กต์คลาสจำนวนมากก็ตาม ทั้งนี้เนื่องจากอ็อบเจ็กต์ทั้งหมดใช้สมาชิกข้อมูลแบบคงที่ร่วมกัน สมาชิกข้อมูลแบบคงที่เริ่มต้นเป็นศูนย์เสมอเมื่อสร้างวัตถุชั้นหนึ่ง

ไวยากรณ์ของสมาชิกข้อมูลคงที่จะได้รับดังนี้ −

static data_type data_member_name;

ในไวยากรณ์ข้างต้น ใช้คำหลักแบบคงที่ data_type คือชนิดข้อมูล C++ เช่น int, float เป็นต้น data_member_name คือชื่อที่กำหนดให้สมาชิกของ data.

โปรแกรมที่แสดงสมาชิกข้อมูลคงที่ใน C ++ ได้รับดังนี้ -

ตัวอย่าง

#include <iostream>
#include<string.h>

using namespace std;
class Student {
   private:
   int rollNo;
   char name[10];
   int marks;
   public:
   static int objectCount;
   Student() {
      objectCount++;
   }

   void getdata() {
      cout << "Enter roll number: "<<endl;
      cin >> rollNo;
      cout << "Enter name: "<<endl;
      cin >> name;
      cout << "Enter marks: "<<endl;
      cin >> marks;
   }

   void putdata() {
      cout<<"Roll Number = "<< rollNo <<endl;
      cout<<"Name = "<< name <<endl;
      cout<<"Marks = "<< marks <<endl;
      cout<<endl;
   }
};
int Student::objectCount = 0;
int main(void) {
   Student s1;
   s1.getdata();
   s1.putdata();
   Student s2;

   s2.getdata();
   s2.putdata();
   Student s3;

   s3.getdata();
   s3.putdata();
   cout << "Total objects created = " << Student::objectCount << endl;
   return 0;
}

ผลลัพธ์

ผลลัพธ์ของโปรแกรมข้างต้นเป็นดังนี้ −

Enter roll number: 1
Enter name: Mark
Enter marks: 78
Roll Number = 1
Name = Mark
Marks = 78

Enter roll number: 2
Enter name: Nancy
Enter marks: 55
Roll Number = 2
Name = Nancy
Marks = 55

Enter roll number: 3
Enter name: Susan
Enter marks: 90
Roll Number = 3
Name = Susan
Marks = 90
Total objects created = 3

ในโปรแกรมข้างต้น นักเรียนในชั้นเรียนมีสมาชิกข้อมูลสามคนซึ่งแสดงถึงหมายเลขม้วนของนักเรียน ชื่อและเครื่องหมาย สมาชิกข้อมูล objectCount เป็นสมาชิกข้อมูลคงที่ที่มีจำนวนของอ็อบเจ็กต์ที่สร้างจากคลาส Student Student() เป็นคอนสตรัคเตอร์ที่เพิ่ม objectCount ทุกครั้งที่มีการสร้างอ็อบเจกต์คลาสใหม่

มี 2 ​​ฟังก์ชันสมาชิกในชั้นเรียน ฟังก์ชัน getdata() รับข้อมูลจากผู้ใช้และ putdata() จะแสดงข้อมูล ข้อมูลโค้ดสำหรับสิ่งนี้มีดังนี้ −

class Student {
   private:
   int rollNo;
   char name[10];
   int marks;
   public:
   static int objectCount;
   Student() {
      objectCount++;
   }

   void getdata() {
      cout << "Enter roll number: "<<endl;
      cin >> rollNo;
      cout << "Enter name: "<<endl;
      cin >> name;
      cout << "Enter marks: "<<endl;
      cin >> marks;
   }

   void putdata() {
      cout<<"Roll Number = "<< rollNo <<endl;
      cout<<"Name = "<< name <<endl;
      cout<<"Marks = "<< marks <<endl;
      cout<<endl;
   }
};

ในฟังก์ชัน main() มีอ็อบเจ็กต์ของคลาส Student อยู่สามตัว ได้แก่ s1, s2 และ s3 สำหรับแต่ละอ็อบเจ็กต์เหล่านี้ getdata() และ putdata() จะถูกเรียก ในตอนท้าย ค่าของ objectCount จะปรากฏขึ้น ด้านล่างนี้ −

int main(void) {
   Student s1;
   s1.getdata();
   s1.putdata();

   Student s2;
   s2.getdata();
   s2.putdata();

   Student s3;
   s3.getdata();
   s3.putdata();

   cout << "Total objects created = " << Student::objectCount << endl;

   return 0;
}