Hàm Static Member trong C ++ là gì?



Bài viết này sẽ cung cấp cho bạn kiến ​​thức chi tiết và toàn diện về hàm thành viên tĩnh trong C ++ với các ví dụ minh họa.

Static là một từ khóa trong C và C ++ được sử dụng để khai báo một kiểu đặc biệt của một biến hoặc một hàm bên trong hoặc bên ngoài một lớp. Trong bài đăng này, chúng ta sẽ hiểu ngắn gọn khái niệm về biến thành viên tĩnh và hàm thành viên tĩnh trong c ++ và so sánh chúng với các biến và hàm bình thường theo thứ tự sau:

java sử dụng cái này khi nào

Biến thành viên tĩnh

Các biến được phân loại là tĩnh cũng là một phần của C. giả sử trong một hàm có 2 biến, một là biến bình thường và một là biến tĩnh. Biến bình thường được tạo khi hàm được gọi và phạm vi của nó bị giới hạn. Trong khi biến static được tạo một lần và bị hủy ở cuối chương trình. Các biến này có thời gian tồn tại trong suốt chương trình.





#include using namespace std void Test () {static int x = 1 x = ++ x int y = 1 y = ++ y cout<<'x = '<

Đầu ra:

static-member-variables-1



Từ kết quả đầu ra ở trên, chúng ta có thể kết luận rằng mỗi khi hàm Test () được gọi là một bản sao của biến ‘y’ được tạo ra trong khi cùng một bản sao của biến ‘x’ được sử dụng mỗi khi hàm Test () được gọi.

Bây giờ, hãy thảo luận về các đặc điểm của các biến tĩnh

  1. Biến static được khởi tạo bằng 0. Nó chỉ được khởi tạo một lần.



  2. Trong suốt chương trình, chỉ một bản sao của biến thành viên tĩnh được tạo cho toàn bộ lớp do đó các biến thành viên tĩnh còn được gọi là biến lớp. Nó được chia sẻ bởi tất cả các phiên bản của lớp.

  3. Biến thành viên tĩnh chỉ hiển thị trong lớp nhưng thời gian tồn tại của nó cho đến khi chương trình kết thúc.

Hãy xem xét một ví dụ về các biến thành viên tĩnh trong một lớp.

#include using namespace std class Ví dụ {static int x public: void function1 () {x ++} void function2 () {cout<<'x = '<

Đầu ra:

Từ kết quả trên, chúng ta có thể thấy rằng biến ‘x’ được chia sẻ trên tất cả các đối tượng. Để hiểu chi tiết khái niệm về các biến dữ liệu tĩnh, chúng ta có thể nghĩ về một thư viện nơi có một số cuốn sách được đặt trên các giá khác nhau. Coi thư viện như một lớp, vị trí của một cuốn sách nào đó ‘x’ như một biến thành viên tĩnh và sinh viên là các đối tượng của lớp. Khi học sinh đầu tiênđến nơi, anh ấy đặt ‘x’ vào vị trí mới ngay bây giờ khi một học sinh khác đến ‘x’ sẽ không trở lại vị trí ban đầu nhưng nó sẽ vẫn ở vị trí mà học sinh đầu tiên đã để lại.

Các hàm thành viên tĩnh trong C ++

Cũng giống như các biến thành viên tĩnh, chúng ta có các hàm thành viên tĩnh được sử dụng cho một mục đích cụ thể. Để tạo một hàm thành viên tĩnh, chúng ta cần sử dụng từ khóa static trong khi khai báo hàm. Vì các biến thành viên tĩnh là thuộc tính lớp chứ không phải thuộc tính đối tượng, để truy cập chúng, chúng ta cần sử dụng tên lớp thay vì tên đối tượng.

Thuộc tính của hàm thành viên tĩnh:

  1. Một hàm tĩnh chỉ có thể truy cập các biến hoặc hàm tĩnh khác có trong cùng một lớp

  2. Các hàm thành viên tĩnh được gọi bằng cách sử dụng tên lớp. Cú pháp-class_name :: function_name ()

Hãy xem xét một ví dụ cổ điển để hiểu chi tiết khái niệm hàm thành viên tĩnh. Trong ví dụ này, chúng ta sẽ hiểu tất cả các khái niệm liên quan đến các hàm thành viên tĩnh.

#include using namespace std class Ví dụ {static int Number int n public: void set_n () {n = ++ Number} void show_n () {cout<<'value of n = '<

Từ kết quả trên, chúng ta có thể thấy rằng giá trị của biến ‘n’ là khác nhau đối với cả hai đối tượng ‘example1’ và ‘example2’ của lớp ‘Ví dụ’. Vì biến ‘Number’ là một biến lớp nên giá trị của nó là giống nhau đối với cả hai đối tượng ‘example1’ và ‘example2’. Các biến và hàm thành viên tĩnh được sử dụng khi các giá trị chung được chia sẻ trên tất cả các đối tượng. Trong khi lập trình, việc sử dụng từ khóa static nên được thực hiện một cách khôn ngoan.

Với điều này, chúng ta sẽ kết thúc bài viết này về Hàm thành viên tĩnh trong c ++. Nếu bạn muốn tìm hiểu thêm, hãy xem bởi Edureka, một công ty học trực tuyến đáng tin cậy. Khóa đào tạo và cấp chứng chỉ Java J2EE và SOA của Edureka được thiết kế để đào tạo bạn về cả khái niệm Java cốt lõi và nâng cao cùng với các khung công tác Java khác nhau như Hibernate & Spring.

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của blog này và chúng tôi sẽ liên hệ lại với bạn trong thời gian sớm nhất.