Tất cả chúng ta đều nhận thấy rằng con trỏ (và các loại POD khác) nên được khởi tạo.
Câu hỏi sau đó trở thành 'ai nên khởi tạo chúng'.
Về cơ bản có hai phương pháp:
- Trình biên dịch khởi tạo chúng.
- Nhà phát triển khởi tạo chúng.
Hãy giả sử rằng trình biên dịch khởi tạo bất kỳ biến nào không được nhà phát triển khởi tạo một cách rõ ràng. Sau đó, chúng tôi gặp phải các tình huống trong đó việc khởi tạo biến là không bình thường và lý do nhà phát triển không thực hiện điều đó tại điểm khai báo là họ cần thực hiện một số thao tác và sau đó gán.
Vì vậy, bây giờ chúng ta có tình huống rằng trình biên dịch đã thêm một lệnh bổ sung vào mã khởi tạo biến thành NULL, sau đó mã nhà phát triển được thêm vào để thực hiện việc khởi tạo chính xác. Hoặc trong các điều kiện khác, biến có thể không bao giờ được sử dụng. Rất nhiều nhà phát triển C ++ sẽ hét lên lỗi trong cả hai điều kiện với chi phí của hướng dẫn bổ sung đó.
Nó không chỉ là về thời gian. Nhưng cả không gian. Có rất nhiều môi trường mà cả hai tài nguyên đều ở mức cao và các nhà phát triển cũng không muốn từ bỏ.
NHƯNG : Bạn có thể mô phỏng tác động của việc buộc khởi tạo. Hầu hết các trình biên dịch sẽ cảnh báo bạn về các biến chưa được khởi tạo. Vì vậy tôi luôn chuyển mức cảnh báo của mình lên mức cao nhất có thể. Sau đó, yêu cầu trình biên dịch coi tất cả các cảnh báo là lỗi. Trong các điều kiện này, hầu hết các trình biên dịch sau đó sẽ tạo ra lỗi cho các biến chưa được khởi tạo nhưng được sử dụng và do đó sẽ ngăn không cho mã được tạo.