使用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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP