สมาชิกสแตติกในคลาสใน 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;