วัตถุคงที่ถูกประกาศด้วยคำหลักคงที่ มีการเริ่มต้นเพียงครั้งเดียวและจัดเก็บไว้ในพื้นที่จัดเก็บแบบคงที่ สแตติกอ็อบเจ็กต์จะถูกทำลายก็ต่อเมื่อโปรแกรมหยุดทำงาน กล่าวคือ วัตถุดังกล่าวจะอยู่จนกว่าจะสิ้นสุดโปรแกรม
โปรแกรมที่แสดงวัตถุคงที่ใน 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; }