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

จะสร้างคลาสคงที่ใน C ++ ได้อย่างไร?


ไม่มีสิ่งที่เรียกว่าคลาสคงที่ใน C++ การประมาณค่าที่ใกล้เคียงที่สุดคือคลาสที่มีเฉพาะสมาชิกข้อมูลสแตติกและเมธอดสแตติก

สมาชิกข้อมูลแบบคงที่ในชั้นเรียนจะถูกใช้ร่วมกันโดยวัตถุในชั้นเรียนทั้งหมด เนื่องจากมีสำเนาเดียวเท่านั้นในหน่วยความจำ โดยไม่คำนึงถึงจำนวนของวัตถุในชั้นเรียน เมธอดสแตติกในคลาสเข้าถึงได้เฉพาะสมาชิกข้อมูลสแตติก เมธอดสแตติกอื่นๆ หรือเมธอดใดๆ นอกคลาส

โปรแกรมที่แสดงสมาชิกข้อมูลสแตติกและเมธอดสแตติกในคลาสในภาษา C++ มีดังต่อไปนี้

ตัวอย่าง

#include <iostream>
using namespace std;
class Example {
   public :
   static int a;
   static int func(int b) {
      cout << "Static member function called";
      cout << "\nThe value of b is: " << b;
   }
};
int Example::a=28;
int main() {
   Example obj;
   Example::func(8);
   cout << "\nThe value of the static data member a is: " << obj.a;
   return 0;
}

ผลลัพธ์

ผลลัพธ์ของโปรแกรมข้างต้นมีดังนี้

Static member function called
The value of b is: 8
The value of the static data member a is: 28

ตอนนี้เรามาทำความเข้าใจโปรแกรมข้างต้นกัน

ในตัวอย่างคลาส a คือสมาชิกข้อมูลสแตติกของชนิดข้อมูล int เมธอด func() เป็นวิธีสแตติกที่พิมพ์ "ฟังก์ชันสมาชิกแบบคงที่ที่เรียก" และแสดงค่าของ b ข้อมูลโค้ดที่แสดงเป็นดังนี้

class Example {
   public :
   static int a;
   static int func(int b) {
      cout << "Static member function called";
      cout << "\nThe value of b is: " << b;
   }
};
int Example::a = 28;

ในฟังก์ชัน main() วัตถุ obj จะถูกสร้างขึ้นจากคลาส Example ฟังก์ชั่น func() ถูกเรียกโดยใช้ชื่อคลาสและตัวดำเนินการแก้ไขขอบเขต จากนั้นค่าของ a จะปรากฏขึ้น ข้อมูลโค้ดที่แสดงเป็นดังนี้

int main() {
   Example obj;
   Example::func(8);
   cout << "\nThe value of the static data member a is: " << obj.a;
   return 0;
}