Computer >> Máy Tính >  >> Lập trình >> C ++

Các thành viên dữ liệu tĩnh trong C ++


Thành viên dữ liệu tĩnh là các thành viên lớp được khai báo bằng từ khóa static. Chỉ có một bản sao của thành viên dữ liệu tĩnh trong lớp, ngay cả khi có nhiều đối tượng lớp. Điều này là do tất cả các đối tượng chia sẻ thành viên dữ liệu tĩnh. Thành viên dữ liệu tĩnh luôn được khởi tạo bằng 0 khi đối tượng lớp đầu tiên được tạo.

Cú pháp của các thành viên dữ liệu tĩnh được đưa ra như sau -

static data_type data_member_name;

Trong cú pháp trên, từ khóa static được sử dụng. Data_type là kiểu dữ liệu C ++ chẳng hạn như int, float, v.v. Data_member_name là tên được cung cấp cho thành viên dữ liệu.

Một chương trình chứng minh các thành viên dữ liệu tĩnh trong C ++ được đưa ra như sau -

Ví dụ

#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;
}

Đầu ra

Kết quả của chương trình trên như sau -

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

Trong chương trình trên, học sinh lớp có ba thành viên dữ liệu biểu thị số hiệu, tên và điểm của học sinh. Thành viên dữ liệu objectCount là một thành viên dữ liệu tĩnh chứa số lượng đối tượng được tạo ra của lớp Sinh viên. Student () là một phương thức khởi tạo tăng objectCount mỗi khi một đối tượng lớp mới được tạo.

Có 2 hàm thành viên trong lớp. Hàm getdata () lấy dữ liệu từ người dùng và hàm putdata () hiển thị dữ liệu. Đoạn mã cho điều này như sau -

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;
   }
};

Trong hàm main (), có ba đối tượng thuộc lớp Student tức là s1, s2 và s3. Đối với mỗi đối tượng này getdata () và putdata () được gọi. Cuối cùng, giá trị của objectCount được hiển thị. Điều này được đưa ra dưới đây -

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;
}