Nên tránh biến toàn cục trong mọi ngôn ngữ, không chỉ C++. Chúng làm ô nhiễm không gian tên toàn cục, gây bug khôn lường trong dự án lớn vì có thể truy cập/sửa đổi từ bất kỳ file nào. Lý do biến toàn cục được coi là xấu:
- Biến toàn cục có thể bị thay đổi bởi bất kỳ phần code nào, khó nhớ/luận giải mọi cách dùng có thể.
- Không có kiểm soát truy cập. Không thể giới hạn chỉ một phần chương trình.
- Gây coupling (liên kết) chặt chẽ giữa các phần code.
- Gây ô nhiễm không gian tên, dẫn đến gán giá trị lại vô tình.
- Test chương trình dùng biến toàn cục rất khó khăn do khó tách biệt chúng khi test.
Lưu ý: Đôi khi bắt buộc dùng biến toàn cục. Nhưng trước khi dùng, hãy chắc chắn không có phương án thay thế. Tham khảo thêm: https://wiki.c2.com/?GlobalVariablesAreBad