เมื่อใช้คีย์เวิร์ดคงที่ สมาชิกหรือฟังก์ชันตัวแปรหรือข้อมูลจะไม่สามารถแก้ไขได้อีก มีการจัดสรรตลอดอายุโปรแกรม ฟังก์ชันสแตติกสามารถเรียกได้โดยตรงโดยใช้ชื่อคลาส
ตัวแปรสแตติกเริ่มต้นเพียงครั้งเดียว คอมไพเลอร์คงตัวแปรไว้จนสิ้นสุดโปรแกรม ตัวแปรคงที่สามารถกำหนดได้ภายในหรือภายนอกฟังก์ชัน พวกเขาอยู่ในบล็อก ค่าเริ่มต้นของตัวแปรคงที่คือศูนย์ ตัวแปรสแตติกจะคงอยู่จนกว่าจะมีการดำเนินการของโปรแกรม
ต่อไปนี้เป็นไวยากรณ์ของคีย์เวิร์ดคงที่
static datatype variable_name = value; // Static variable static return_type function_name { // Static functions ... }
ที่นี่
ประเภทข้อมูล − ประเภทข้อมูลของตัวแปร เช่น int, char, float เป็นต้น
variable_name − นี่คือชื่อของตัวแปรที่กำหนดโดยผู้ใช้
คุณค่า - ค่าใด ๆ ที่จะเริ่มต้นตัวแปร โดยค่าเริ่มต้น จะเป็นศูนย์
return_type − ชนิดข้อมูลของฟังก์ชันเพื่อคืนค่า
function_name − ชื่อใดๆ ของฟังก์ชัน
ต่อไปนี้เป็นตัวอย่างของคำหลักคงที่
ตัวอย่าง
#include <bits/stdc++.h> using namespace std; class Base { public : static int val; static int func(int a) { cout << "\nStatic member function is called"; cout << "\nThe value of a : " << a; } }; int Base::val=28; int main() { Base b; Base::func(8); cout << "\nThe static variable value : " << b.val; return 0; }
ผลลัพธ์
Static member function is called The value of a : 8 The static variable value : 28
ในโปรแกรมข้างต้น มีการประกาศตัวแปรสแตติก ฟังก์ชันสแตติกถูกกำหนดในคลาส Base ดังแสดงด้านล่าง -
public : static int val; static int func(int a) { cout << "\nStatic member function called"; cout << "\nThe value of a : " << a; }
หลังคลาสและก่อน main() ตัวแปรสแตติกจะเริ่มต้นได้ดังนี้
int Base::val=28;
ในฟังก์ชัน main() วัตถุของคลาส Base จะถูกสร้างขึ้นและเรียกตัวแปรสแตติก ฟังก์ชันสแตติกยังถูกเรียกโดยไม่ต้องใช้วัตถุของคลาสฐาน
Base b; Base::func(8); cout << "\nThe static variable value : " << b.val;