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

Đếm số đối tượng bằng cách sử dụng hàm thành viên tĩnh trong chương trình C ++


Mục tiêu ở đây là đếm số lượng đối tượng của một lớp đang được tạo bằng hàm thành viên tĩnh.

Một thành viên dữ liệu tĩnh thường được chia sẻ bởi tất cả các đối tượng của lớp. Nếu không có giá trị nào được đưa ra, một thành viên dữ liệu tĩnh luôn được khởi tạo bằng 0.

Một hàm thành viên tĩnh chỉ có thể sử dụng các thành viên dữ liệu tĩnh của lớp đó.

Chúng tôi đang sử dụng một Sinh viên lớp học ở đây. Chúng tôi sẽ khai báo một số lượng thành viên dữ liệu tĩnh sẽ lưu trữ số lượng các đối tượng. Một hàm thành viên tĩnh rollCall (void) sẽ hiển thị số lượng đối tượng dưới dạng số cuộn của học sinh trong một lớp.

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau

  • Chúng tôi khai báo một lớp Sinh viên có số thành viên dữ liệu công khai là int rollno và số thành viên dữ liệu tĩnh.

  • Có một hàm tạo gọi rollcall () và khởi tạo rollno với số đếm.

  • Có một trình hủy làm giảm số lượng.

  • Hàm thành viên tĩnh rollcall () hiển thị số lượng đối tượng dưới dạng số lượng Sinh viên và tăng số lượng.

  • Mỗi khi đối tượng của Student được tạo, hàm tạo gọi rollcall () và số lượng được tăng lên. Số lượng này được chỉ định cho rollno của đối tượng Sinh viên đó.

  • Trong main, chúng tôi đã tạo 4 đối tượng của lớp Student là stu1, stu2, stu3, stu4 và xác minh rằng count và rollno giống như không. của các đối tượng.

Ví dụ

// C++ program to Count the number of objects
// using the Static member function
#include <iostream>
using namespace std;
class Student {
public:
   int rollno;
   static int count;
public:
   Student(){
      rollCall();
      rollno=count;
   }
   ~Student()
   { --count; }
   static void rollCall(void){
      cout <<endl<<"Student Count:" << ++count<< "\n"; //object count
   }
};
int Student::count;
int main(){
   Student stu1;
   cout<<"Student 1: Roll No:"<<stu1.rollno;
   Student stu2;
   cout<<"Student 2: Roll No:"<<stu2.rollno;
   Student stu3;
   cout<<"Student 3: Roll No:"<<stu3.rollno;
   Student stu4;
   cout<<"Student 4: Roll No:"<<stu4.rollno;
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

Student Count:1
Student 1: Roll No:1
Student Count:2
Student 2: Roll No:2
Student Count:3
Student 3: Roll No:3
Student Count:4
Student 4: Roll No:4