Computer >> Máy Tính >  >> Lập trình >> C ++

từ khóa tĩnh trong C ++ so với Java

Trong C ++ hoặc Java, chúng ta có thể lấy từ khóa static. Chúng hầu hết giống nhau, nhưng có một số khác biệt cơ bản giữa hai ngôn ngữ này. Hãy để chúng tôi xem sự khác biệt giữa tĩnh trong C ++ và tĩnh trong Java.

Các thành viên dữ liệu tĩnh về cơ bản giống nhau trong Java và C ++. Các thành viên dữ liệu tĩnh là thuộc tính của lớp và nó được chia sẻ cho tất cả các đối tượng.

Ví dụ

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);
   }
}

Đầu ra

The number of created objects: 2

Ví dụ

#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;
}

Đầu ra

The number of created objects: 2

Các hàm thành viên tĩnh - Trong C ++ và Java, chúng ta có thể tạo các hàm thành viên tĩnh. Đây cũng là thành viên của lớp đó. Cũng có một số hạn chế.

  • Các phương thức tĩnh chỉ có thể gọi một số phương thức tĩnh khác.
  • Họ chỉ có thể truy cập các biến thành viên tĩnh
  • Họ không thể truy cập ‘this’ hoặc ‘super’ (chỉ dành cho Java)

Trong C ++ và Java, các thành viên tĩnh có thể được truy cập mà không cần tạo một số đối tượng

Ví dụ

//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();
   }
}

Đầu ra

The static data from static member: 10

Ví dụ

#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();
}

Đầu ra

The static data from static member: 10

Khối tĩnh:Trong Java, chúng ta có thể tìm thấy khối tĩnh. Điều này còn được gọi là mệnh đề tĩnh. Chúng được sử dụng để khởi tạo tĩnh của một lớp. Mã, được viết bên trong khối tĩnh, sẽ chỉ được thực thi một lần. Điều này không có trong C ++

Trong C ++, chúng ta có thể khai báo các biến cục bộ tĩnh, nhưng trong Java, các biến cục bộ tĩnh không được hỗ trợ.