Ý nghĩa của từ khóa static trong c

     

1. Định nghĩa Static c++

Static vào c++ là tài liệu của lớp không phải là dữ liệu của đối tượng. Static trong c++ trường thọ như một phát triển thành toàn cục. Hay có thể nói rằng dữ liệu static xuất hiện thêm trước khi bạn khởi tạo đối tượng người tiêu dùng của lớp, cùng nó chỉ trường tồn duy nhất.

Bạn đang xem: ý nghĩa của từ khóa static trong c

Các thành viên static có thể là public, private hoặc protected.

Static ko kể khai báo trở nên còn có thể khai báo hàm.

Đối với class, static dùng làm khai báo thành viên tài liệu dùng bình thường cho mọi bộc lộ của lớp:

Một bản duy tuyệt nhất tồn tại trong suốt quá trình chạy của chương trình.Dùng phổ biến cho toàn bộ các biểu đạt của lớp.Bất nói lớp đó bao gồm bao nhiêu thể hiện.

2. Biến static trong hướng đối tượng c++

Ví dụ mình sẽ khai báo một biến static, int count, thay đổi này dùng để làm đếm số lượng các hình chữ nhật đã được tạo ra.


class Rectangle private: int width; int length; static int count; public: void set(int w, int l); int area(); Rectangle() count++; Rectangle(int x, int y) count++; set(x,y);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Rectangle

private:
int width;
int length;
static int count;
public:
void set(int w, int l);
int area();
Rectangle()

count++;

Rectangle(int x, int y)

count++;
set(x,y);


Như vậy lúc một đối tượng người tiêu dùng được tạo bọn họ sẽ tăng count lên để triển khai đúng ý trang bị đếm hình chữ nhật.

Xem thêm: Quảng Cáo Bia Tiger - Gốc Và Tua Ngược: Crystal

Tuy nhiên bọn họ không thể gán trước giá chỉ trị lúc đầu của static vào class mà bọn họ phải gán giá trị đến nó ở kế bên class.

ví dụ


int main() int Rectangle::count = 0; // sau khoản thời gian khởi tạo thành giá trị đầu mình chế tác minh họa 3 hình chữ nhật Rectangle r1(2,4); Rectangle r2(1,2); Rectangle r3;
1
2
3
4
5
6
7
8
9
int main()

int Rectangle::count = 0;
// sau khi khởi sinh sản giá trị đầu mình tạo thành minh họa 3 hình chữ nhật
Rectangle r1(2,4);
Rectangle r2(1,2);
Rectangle r3;

*
Ví dụ về static vào c++


Ví dụ trên chỉ rõ trở thành static count chưa phải là tài liệu của đối tượng như width cùng length mà lại nó là tài liệu của class còn chỉ tồn tại duy nhất.

Để sử dụng, gán hoặc lấy quý giá của static bạn thực hiện phạm vi truy xuất để hotline nó


//Ví dụ khởi tạo ra ban đầuint Rectangle::count = 0;//Gọi vươn lên là static:Rectangle::count
1
2
3
4
5
//Ví dụ khởi chế tạo ban đầu
int Rectangle::count = 0;
//Gọi trở nên static:
Rectangle::count

Lưu ý thêm ở chỗ khai báo mình nhằm static count sinh hoạt private, nên bên phía ngoài class ko thể cần sử dụng phạm vi truy hỏi xuất đến truy vấn (Như giải pháp gọi Rectangle::count ) Nhưng vấn đề khai báo cùng gán giá chỉ trị ban đầu như int Rectangle::count = 0; là được phép.

Để cần sử dụng Rectangle::count bạn rất có thể khai báo biến static này ngơi nghỉ public hoặc viết thêm hàm static get quý giá count này.

3. Hàm static trong hướng đối tượng c++

Hàm static tất cả vai trò cũng giống như biến static. Nghĩa là khi bạn đã khai báo class dẫu vậy chưa tạo ra ra đối tượng người tiêu dùng như Rectangle r1(2,4) thì họ vẫn truy vấn được trở nên count như ví dụ trên. Vậy tại phần hàm static cũng đều có vai trò như vậy, hàm này đã là tồn tại độc nhất vô nhị của class.

Xem thêm: Tên Linh Tiếng Anh Là Gì - Biệt Danh Hay Cho Tên Linh

Mình sẽ khai báo thêm static int getCount() ở thuộc tính public

a. Code cụ thể về static


class Rectangle private: int width; int length; static int count; public: void set(int w, int l); static int getCount() return count; int area(); Rectangle() count++; Rectangle(int x, int y) count++; set(x,y);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Rectangle

private:
int width;
int length;
static int count;
public:
void set(int w, int l);
static int getCount()

return count;

int area();
Rectangle()

count++;

Rectangle(int x, int y)

count++;
set(x,y);


b. Call hàm static

Bạn có thể gọi hàm static bằng cách sau:

Gọi Rectangle::getCount() ở kế bên class hoặc bên trong classGọi getCount() Bên trong class.

Chủ đề này không thật sự quan trọng lắm, tuy nhiên bạn cũng phải hiểu vì chưng nó rất dễ