Nếu bạn có dữ liệu cho một lớp sẽ được sửa đổi và cần được giữ lại trong suốt chương trình, nhưng chỉ được sử dụng trong một hàm thành viên, nó được ưu tiên biến biến đó thành biến tĩnh cục bộ của thường lệ mà nó ở trong hoặc biến nó thành một thành viên của lớp học?biến tĩnh so với thành viên
Trả lời
Câu hỏi không phải là "liệu dữ liệu có được sử dụng trong suốt chương trình" hay không "nếu bạn tạo hai đối tượng của lớp này, bạn có muốn chúng chia sẻ dữ liệu này không?" Nếu có, hãy làm cho nó tĩnh. Nếu không, đừng.
Tôi cho rằng trong hầu hết các trường hợp, bạn không bao giờ nên sử dụng biến tĩnh cục bộ và thay vào đó hãy sử dụng biến thành viên tĩnh. Sau đó, câu hỏi thoái hóa nếu biến đó nên được chia sẻ giữa các cá thể lớp hay không.
Khai báo biến cục bộ là tĩnh nghĩa là phương thức của bạn hiện có trạng thái, tách biệt với trạng thái của đối tượng. Nó có thể dẫn đến nhiều sai lầm khi duy trì mã này (chẳng hạn như thực hiện sao chép bản dựng, phân công, tuần tự hóa) và khi đọc nó (hành vi phương pháp không rõ ràng).
Tránh sử dụng những người dân địa phương tĩnh trừ khi bạn có một số lý do chính đáng (người duy nhất tôi có thể nghĩ là triển khai thực hiện đơn luồng đơn).
- 1. Thành viên riêng: Tĩnh const so với chỉ const
- 2. Lớp Singleton so với lớp có thành viên tĩnh
- 3. C++ Phạm vi biến thành viên tĩnh
- 4. Cấu trúc tĩnh với các thành viên tĩnh
- 5. Khởi tạo biến thành viên shared_ptr, mới so với make_shared?
- 6. Biến tĩnh so với Biến động
- 7. biến constexpr tĩnh so với hàm
- 8. biến thành viên có thể thay đổi tĩnh trong C++?
- 9. C++ các hàm và biến thành viên tĩnh
- 10. Chức năng thành viên trả về biến tĩnh
- 11. biến cục bộ của các hàm thành viên tĩnh
- 12. C++ chức năng thành viên truy cập biến tĩnh riêng?
- 13. C++ Sử dụng Biến Thành viên Const tĩnh
- 14. tham chiếu không được xác định vào biến tĩnh thành viên bên trong hàm thành viên tĩnh '
- 15. Hiệu suất C++ truy cập các biến thành viên so với biến cục bộ
- 16. tĩnh cast so với dàn diễn viên năng động
- 17. Chức năng thành viên tĩnh
- 18. Thành viên lớp học "tĩnh"
- 19. Ràng buộc với biến thành viên
- 20. Cách truy cập thành viên tĩnh Global.asax?
- 21. Không thể tạo tham chiếu tĩnh cho thành viên trường không tĩnhVariable với biến riêng
- 22. Biến thành viên tĩnh có phổ biến cho tất cả các C# chung instantiations không?
- 23. Cách tạo giao diện .NET với các thành viên tĩnh?
- 24. const_cast của một thành viên const tĩnh
- 25. nhiều định nghĩa cho thành viên tĩnh?
- 26. Thừa kế thành viên tĩnh trong C#
- 27. biến thành viên python của cá thể hoạt động như biến thành viên và một số hoạt động như biến tĩnh
- 28. C++: Làm thế nào một hàm thành viên tĩnh công khai truy cập các biến thành viên cá thể riêng?
- 29. Sự khác biệt giữa thành viên tĩnh và không tĩnh?
- 30. Các thành viên lớp tĩnh python
Cảm ơn. Tôi quên rằng ngay cả các biến tĩnh cục bộ trong các hàm thành viên lớp được chia sẻ bởi tất cả các đối tượng của lớp đó. – Anonymous