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