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

Làm thế nào để tạo một lớp tĩnh trong C ++?


Không có cái gọi là lớp tĩnh trong C ++. Giá trị gần đúng nhất là một lớp chỉ chứa các thành viên dữ liệu tĩnh và các phương thức tĩnh.

Các thành viên dữ liệu tĩnh trong một lớp được chia sẻ bởi tất cả các đối tượng của lớp vì chỉ có một bản sao của chúng trong bộ nhớ, bất kể số lượng đối tượng của lớp. Các phương thức tĩnh trong một lớp chỉ có thể truy cập các thành viên dữ liệu tĩnh, các phương thức tĩnh khác hoặc bất kỳ phương thức nào bên ngoài lớp.

Một chương trình thể hiện các thành viên dữ liệu tĩnh và các phương thức tĩnh trong một lớp trong C ++ được đưa ra như sau.

Ví dụ

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

Đầu ra

Kết quả của chương trình trên như sau.

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

Bây giờ chúng ta hãy hiểu chương trình trên.

Trong lớp Ví dụ, a là thành viên dữ liệu tĩnh của kiểu dữ liệu int. Phương thức func () là một phương thức tĩnh in ra "Hàm thành viên tĩnh được gọi" và hiển thị giá trị của b. Đoạn mã hiển thị điều này như sau.

lớp
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;

Trong hàm main (), một đối tượng obj được tạo từ lớp Ví dụ. Hàm func () được gọi bằng cách sử dụng tên lớp và toán tử phân giải phạm vi. Khi đó giá trị của a được hiển thị. Đoạn mã hiển thị điều này như sau.

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