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

คำหลักแบบคงที่ใน C ++ กับ Java


ใน C ++ หรือ Java เราสามารถรับคำสำคัญแบบคงที่ ส่วนใหญ่จะเหมือนกัน แต่มีความแตกต่างพื้นฐานบางอย่างระหว่างสองภาษานี้ ให้เราดูความแตกต่างระหว่างสแตติกใน C++ และสแตติกใน Java

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

ตัวอย่าง

public class Test {
   static int ob_count = 0;
   Test() {
      ob_count++;
   }
   public static void main(String[] args) {
      Test object1 = new Test();
      Test object2 = new Test();
      System.out.println("The number of created objects: " + ob_count);
   }
}

ผลลัพธ์

The number of created objects: 2

ตัวอย่าง

#include<iostream>
using namespace std;
class Test {
   public:
      static int ob_count;
      Test() {
         ob_count++;
      }
};
int Test::ob_count = 0;
int main() {
   Test object1, object2;
   cout << "The number of created objects: " << Test::ob_count;
}

ผลลัพธ์

The number of created objects: 2

ฟังก์ชันสมาชิกคงที่ - ใน C++ และ Java เราสามารถสร้างฟังก์ชันสมาชิกแบบคงที่ได้ สิ่งเหล่านี้เป็นสมาชิกของคลาสนั้นด้วย นอกจากนี้ยังมีข้อจำกัดบางประการ

  • เมธอดแบบสแตติกสามารถเรียกเมธอดแบบสแตติกบางวิธีเท่านั้น
  • เข้าถึงได้เฉพาะตัวแปรสมาชิกคงที่เท่านั้น
  • ไม่สามารถเข้าถึง 'this' หรือ 'super' (สำหรับ Java เท่านั้น)

ใน C ++ และ Java สมาชิกแบบสแตติกสามารถเข้าถึงได้โดยไม่ต้องสร้างวัตถุบางอย่าง

ตัวอย่าง

//This is present in the different file named MyClass.java
public class MyClass {
   static int x = 10;
   public static void myFunction() {
      System.out.println("The static data from static member: " + x);
   }
}
//This is present the different file named Test.Java
public class Test {
   public static void main(String[] args) {
      MyClass.myFunction();
   }
}

ผลลัพธ์

The static data from static member: 10

ตัวอย่าง

#include<iostream>
using namespace std;
class MyClass {
   public:
      static int x;
      static void myFunction(){
         cout << "The static data from static member: " << x;
      }
};
int MyClass::x = 10;
int main() {
   MyClass::myFunction();
}

ผลลัพธ์

The static data from static member: 10

บล็อกแบบคงที่:ใน Java เราสามารถค้นหาบล็อกแบบคงที่ได้ สิ่งนี้เรียกอีกอย่างว่าประโยคคงที่ สิ่งเหล่านี้ใช้สำหรับการเริ่มต้นคลาสแบบคงที่ รหัสซึ่งเขียนอยู่ในบล็อกแบบคงที่จะถูกดำเนินการเพียงครั้งเดียว สิ่งนี้ไม่มีอยู่ใน C++

ใน C ++ เราสามารถประกาศตัวแปรท้องถิ่นแบบคงที่ได้ แต่ใน Java ไม่รองรับตัวแปรท้องถิ่นแบบคงที่