Từ khóa static trong lập trình hướng đối tượng

     

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

Static trong c++ là dữ liệu của lớp không hẳn là tài liệu của đối tượng người dùng. Static vào c++ trường tồn nlỗi một trở thành cục bộ. Hay có thể nói dữ liệu static lộ diện trước khi bạn khởi tạo thành đối tượng của lớp, cùng nó chỉ sống thọ độc nhất.

Bạn đang xem: Từ khóa static trong lập trình hướng đối tượng

Các member static hoàn toàn có thể là public, private hoặc protected.

Static ngoài knhị báo biến chuyển còn hoàn toàn có thể khai báo hàm.

Đối với class, static dùng để knhị báo member tài liệu cần sử dụng tầm thường cho số đông diễn tả của lớp:

Một bản tốt nhất trường tồn trong veo quy trình chạy của chương trình.Dùng bình thường mang đến toàn bộ các bộc lộ của lớp.Bất kể lớp kia tất cả từng nào biểu hiện.

2. Biến static vào phía đối tượng người sử dụng c++

lấy ví dụ mình đang knhị báo một đổi thay static, int count, đổi thay này dùng để làm đếm số lượng các hình chữ nhật đã làm được tạo nên.


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


Bởi vậy lúc 1 đối tượng người sử dụng được chế tạo ra chúng ta vẫn tăng count lên nhằm triển khai đúng ý đồ dùng đếm hình chữ nhật.

Xem thêm: 30 Mẫu Thiết Kế Tủ Gầm Cầu Thang Hot Trend Nằm 2020, 11 Cách Trang Trí Gầm Cầu Thang Phòng Khách Đẹp

Tuy nhiên họ cần yếu gán trước cực hiếm ban đầu của static vào class mà lại họ yêu cầu gán quý giá mang đến nó ngơi nghỉ quanh đó class.

ví dụ


int main() int Rectangle::count = 0; // Sau khi khởi sản xuất giá trị đầu mình chế tạo 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 tạo quý giá đầu mình tạo nên minch họa 3 hình chữ nhật
Rectangle r1(2,4);
Rectangle r2(1,2);
Rectangle r3;

*
lấy một ví dụ về static trong c++


lấy ví dụ như bên trên chỉ rõ đổi thay static count không phải là tài liệu của đối tượng người tiêu dùng như width với length nhưng nó là dữ liệu của class còn chỉ mãi mãi duy nhất.

Để thực hiện, gán hoặc rước giá trị của static chúng ta thực hiện phạm vi tầm nã xuất nhằm gọi nó


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

Lưu ý thêm ở phần knhị báo bản thân nhằm static count sống private, buộc phải bên phía ngoài class bắt buộc cần sử dụng phạm vi tầm nã xuất mang lại truy cập (Nhỏng phương pháp call Rectangle::count ) Nhưng việc knhị báo và gán quý hiếm lúc đầu nlỗi int Rectangle::count = 0; là được phép.

Để sử dụng Rectangle::count bạn cũng có thể knhị báo trở nên static này sinh sống public hoặc viết thêm hàm static get quý hiếm count này.

3. Hàm static vào phía đối tượng người sử dụng c++

Hàm static có sứ mệnh cũng như vươn lên là static. Nghĩa là khi bạn sẽ knhị báo class nhưng mà chưa tạo thành đối tượng như Rectangle r1(2,4) thì bọn họ vẫn truy cập được trở nên count nlỗi ví dụ trên. Vậy ở vị trí hàm static cũng đều có vai trò như thế, hàm này sẽ là lâu dài tuyệt nhất của class.

Xem thêm: Khắc Phục Lỗi Kết Nối - Folding Forum &Bull View Topic

Mình đang khai báo thêm static int getCount() ở trực 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

quý khách hoàn toàn có thể Điện thoại tư vấn hàm static bằng phương pháp sau:

hotline Rectangle::getCount() ở xung quanh class hoặc bên trong classHotline getCount() Bên vào class.

Chủ đề này không quá sự quan trọng đặc biệt lắm, tuy nhiên các bạn cũng bắt buộc phát âm do nó rất dễ
Chuyên mục: Công nghệ