ไม่มีสิ่งที่เรียกว่าคลาสคงที่ใน C++ การประมาณค่าที่ใกล้เคียงที่สุดคือคลาสที่มีเฉพาะสมาชิกข้อมูลสแตติกและเมธอดสแตติก
สมาชิกข้อมูลแบบคงที่ในชั้นเรียนจะถูกใช้ร่วมกันโดยวัตถุในชั้นเรียนทั้งหมด เนื่องจากมีสำเนาเดียวเท่านั้นในหน่วยความจำ โดยไม่คำนึงถึงจำนวนของวัตถุในชั้นเรียน เมธอดสแตติกในคลาสเข้าถึงได้เฉพาะสมาชิกข้อมูลสแตติก เมธอดสแตติกอื่นๆ หรือเมธอดใดๆ นอกคลาส
โปรแกรมที่แสดงสมาชิกข้อมูลสแตติกและเมธอดสแตติกในคลาสในภาษา C++ มีดังต่อไปนี้
ตัวอย่าง
#include <iostream> using namespace std; class Example { public : static int a; static int func(int b) { cout << "Static member function called"; cout << "\nThe value of b is: " << b; } }; int Example::a=28; int main() { Example obj; Example::func(8); cout << "\nThe value of the static data member a is: " << obj.a; return 0; }
ผลลัพธ์
ผลลัพธ์ของโปรแกรมข้างต้นมีดังนี้
Static member function called The value of b is: 8 The value of the static data member a is: 28
ตอนนี้เรามาทำความเข้าใจโปรแกรมข้างต้นกัน
ในตัวอย่างคลาส a คือสมาชิกข้อมูลสแตติกของชนิดข้อมูล int เมธอด func() เป็นวิธีสแตติกที่พิมพ์ "ฟังก์ชันสมาชิกแบบคงที่ที่เรียก" และแสดงค่าของ b ข้อมูลโค้ดที่แสดงเป็นดังนี้
class Example { public : static int a; static int func(int b) { cout << "Static member function called"; cout << "\nThe value of b is: " << b; } }; int Example::a = 28;
ในฟังก์ชัน main() วัตถุ obj จะถูกสร้างขึ้นจากคลาส Example ฟังก์ชั่น func() ถูกเรียกโดยใช้ชื่อคลาสและตัวดำเนินการแก้ไขขอบเขต จากนั้นค่าของ a จะปรากฏขึ้น ข้อมูลโค้ดที่แสดงเป็นดังนี้
int main() { Example obj; Example::func(8); cout << "\nThe value of the static data member a is: " << obj.a; return 0; }