使用C++程式中的靜態成員函式計算物件數量


這裡的目標是使用靜態成員函式來計算正在建立的類的物件數量。

靜態資料成員通常由類的所有物件共享。如果沒有給出值,靜態資料成員總是初始化為0。

靜態成員函式只能使用該類的靜態資料成員。

這裡我們使用一個名為Student的類。我們將宣告一個靜態資料成員count,它將儲存物件的數量。一個靜態成員函式rollCall(void)將顯示物件的數量,作為班級中學生的學號。

下面程式中使用的方法如下

  • 我們宣告一個Student類,它具有公共資料成員int rollno和靜態資料成員count。

  • 有一個建構函式呼叫rollcall()並將rollno初始化為count。

  • 有一個解構函式減少count。

  • 靜態成員函式rollcall()顯示物件的數量作為學生數量並遞增count。

  • 每次建立Student的物件時,建構函式都會呼叫rollcall(),並且count會遞增。此count被賦值給該Student物件的rollno。

  • 在main函式中,我們建立了Student類的4個物件,例如stu1、stu2、stu3、stu4,並驗證count和rollno與物件數量相同。

示例

 線上演示

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

輸出

如果我們執行上面的程式碼,它將生成以下輸出:

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

更新於:2020年8月29日

1K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.