สมาชิกสแตติกในคลาสใน C++ สามารถกำหนดได้โดยใช้คีย์เวิร์ดคงที่ มีเพียงหนึ่งสำเนาของสมาชิกคลาสคงที่ในหน่วยความจำ โดยไม่คำนึงถึงจำนวนของอ็อบเจ็กต์ของคลาส ดังนั้นสมาชิกแบบคงที่จึงถูกแชร์โดยอ็อบเจ็กต์คลาสทั้งหมด
สมาชิกคลาสสแตติกถูกกำหนดค่าเริ่มต้นเป็นศูนย์เมื่ออ็อบเจ็กต์แรกของคลาสถูกสร้างขึ้น หากไม่ได้เริ่มต้นด้วยวิธีอื่นใด
โปรแกรมที่แสดงให้เห็นถึงคำจำกัดความของสมาชิกคลาสคงที่จะได้รับดังนี้ -
ตัวอย่าง
#include <iostream>
using namespace std;
class Point{
int x;
int y;
public:
static int count;
Point(int x1, int y1){
x = x1;
y = y1;
count++;
}
void display(){
cout<<"The point is ("<<x<<","<<y<<")\n";
}
};
int Point::count = 0;
int main(void){
Point p1(10,5);
Point p2(7,9);
Point p3(1,2);
p1.display();
p2.display();
p3.display();
cout<<"\nThe number of objects are: "<<Point::count;
return 0;
} ผลลัพธ์ของโปรแกรมข้างต้นเป็นดังนี้ −
The point is (10,5) The point is (7,9) The point is (1,2) The number of objects are: 3
ตอนนี้ให้เราเข้าใจโปรแกรมข้างต้น
class Point มีสมาชิกข้อมูล 2 ตัว x และ y ที่ประกอบเป็นจุด นอกจากนี้ยังมีการนับสมาชิกแบบคงที่ที่ตรวจสอบจำนวนวัตถุที่สร้างจากคลาสพอยต์ ตัวสร้าง Point() เริ่มต้นค่าของ x และ y และฟังก์ชัน display() จะแสดงค่าของมัน ข้อมูลโค้ดที่แสดงสิ่งนี้มีดังนี้ -
class Point{
int x;
int y;
public:
static int count;
Point(int x1, int y1){
x = x1;
y = y1;
count++;
}
void display(){
cout<<"The point is ("<<x<<","<<y<<")\n";
}
}; ในฟังก์ชัน main() มี 3 อ็อบเจ็กต์ที่สร้างจาก class Point จากนั้นค่าของวัตถุเหล่านี้จะแสดงขึ้นโดยการเรียกใช้ฟังก์ชัน display() จากนั้นค่าการนับจะปรากฏขึ้น ข้อมูลโค้ดที่แสดงเป็นดังนี้ -
Point p1(10,5); Point p2(7,9); Point p3(1,2); p1.display(); p2.display(); p3.display(); cout<<"\nThe number of objects are: "<<Point::count;