ไม่มีสิ่งที่เรียกว่าคลาสคงที่ใน 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;
}