วัตถุคงที่ถูกประกาศด้วยคำหลักคงที่ มีการเริ่มต้นเพียงครั้งเดียวและจัดเก็บไว้ในพื้นที่จัดเก็บแบบคงที่ สแตติกอ็อบเจ็กต์จะถูกทำลายก็ต่อเมื่อโปรแกรมหยุดทำงาน กล่าวคือ วัตถุดังกล่าวจะอยู่จนกว่าจะสิ้นสุดโปรแกรม
โปรแกรมที่แสดงวัตถุคงที่ใน C++ มีดังต่อไปนี้
ตัวอย่าง
#include <iostream>
using namespace std;
class Base {
public :
int func() {
int a = 20;
cout << "The value of a : " << a;
}
};
int main() {
static Base b;
b.func();
return 0;
} ผลลัพธ์
ผลลัพธ์ของโปรแกรมข้างต้นมีดังนี้
The value of a : 20
ตอนนี้เรามาทำความเข้าใจโปรแกรมข้างต้นกัน
ฟังก์ชั่น func() ในคลาส Base ประกาศตัวแปร int แล้วแสดงค่าของ a ข้อมูลโค้ดที่แสดงเป็นดังนี้
class Base {
public :
int func() {
int a = 20;
cout << "The value of a : " << a;
}
}; ในฟังก์ชัน main() วัตถุสแตติก b จะถูกสร้างขึ้นจากคลาส Base จากนั้นฟังก์ชัน func() จะถูกเรียก เนื่องจากอ็อบเจ็กต์ b เป็นแบบสแตติก มันจะถูกทำลายเมื่อโปรแกรมยุติการทำงานเท่านั้น ข้อมูลโค้ดที่แสดงเป็นดังนี้
int main() {
static Base b;
b.func();
return 0;
}