Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

คลาสการจัดเก็บแบบคงที่ใน C++


คลาสการจัดเก็บข้อมูลแบบสแตติกสั่งให้คอมไพเลอร์เก็บตัวแปรท้องถิ่นไว้ตลอดช่วงอายุของโปรแกรม แทนที่จะสร้างและทำลายทุกครั้งที่เข้ามาและออกจากขอบเขต ดังนั้น การทำให้ตัวแปรโลคัลคงที่ทำให้สามารถรักษาค่าระหว่างการเรียกใช้ฟังก์ชันได้

ตัวแก้ไขแบบคงที่อาจนำไปใช้กับตัวแปรส่วนกลางได้ เมื่อเสร็จสิ้น จะทำให้ขอบเขตของตัวแปรถูกจำกัดเฉพาะไฟล์ที่ประกาศ

ใน C++ เมื่อใช้สแตติกกับสมาชิกของคลาสข้อมูล จะทำให้ออบเจ็กต์ทั้งหมดของคลาสนั้นแชร์สำเนาของสมาชิกเพียงสำเนาเดียว

ตัวอย่าง

#include <iostream>
void func( void ) {
   static int i = 10; // local static variable
   i++;
   std::cout << "i is " << i ;
   std::cout << " and count is " << count << std::endl;
}

static int count = 6; /* Global variable */

int main() {
   while(count--)
   {
      func();
   }
}

ผลลัพธ์

สิ่งนี้จะให้ผลลัพธ์ -

i is 10 and count is 5
i is 11 and count is 4
i is 12 and count is 3
i is 13 and count is 2
i is 14 and count is 1
i is 15 and count is 0