Computer >> Máy Tính >  >> Lập trình >> C ++

'Sử dụng không gian tên std' có nghĩa là gì trong C ++?

Hãy xem xét một tình huống, khi chúng ta có hai người trùng tên, Piyush, trong cùng một lớp. Bất cứ khi nào chúng ta cần phân biệt chúng, chắc chắn chúng ta sẽ phải sử dụng một số thông tin bổ sung cùng với tên của chúng, chẳng hạn như khu vực, nếu chúng sống ở một khu vực khác hoặc tên cha hoặc mẹ của chúng, v.v.

Tình huống tương tự có thể phát sinh trong các ứng dụng C ++ của bạn. Ví dụ:bạn có thể đang viết một số mã có một hàm được gọi là xyz () và có một thư viện khác có sẵn cũng có cùng một hàm xyz (). Giờ đây, trình biên dịch không có cách nào biết được phiên bản nào của hàm xyz () mà bạn đang đề cập đến trong mã của mình.

Một không gian tên được thiết kế để khắc phục khó khăn này và được sử dụng làm thông tin bổ sung để phân biệt các hàm, lớp, biến tương tự, v.v. có cùng tên có sẵn trong các thư viện khác nhau. Sử dụng không gian tên, bạn có thể xác định ngữ cảnh mà các tên được xác định. Về bản chất, một không gian tên xác định một phạm vi.

C ++ có một thư viện tiêu chuẩn chứa chức năng phổ biến mà bạn sử dụng trong việc xây dựng ứng dụng của mình như vùng chứa, thuật toán, v.v. Nếu những tên này được sử dụng ở dạng mở, chẳng hạn, nếu chúng xác định một lớp hàng đợi trên toàn cầu , bạn sẽ không bao giờ có thể sử dụng lại cùng một tên mà không có xung đột. Vì vậy, họ đã tạo một không gian tên, std để chứa thay đổi này.

Câu lệnh sử dụng không gian tên chỉ có nghĩa là trong phạm vi mà nó hiện diện, làm cho tất cả những thứ trong không gian tên std có sẵn mà không cần phải đặt tiền tố std ::trước mỗi thứ.

Mặc dù phương pháp này áp dụng được đối với mã ví dụ ngắn hoặc các chương trình tầm thường, nhưng việc kéo toàn bộ không gian tên std vào không gian tên chung không phải là một thói quen tốt vì nó đánh bại mục đích của không gian tên và có thể dẫn đến xung đột tên. (Ngay cả khi ban đầu không có xung đột tên, chúng có thể xuất hiện trong quá trình bảo trì vì nhiều mã, thư viện, v.v. được thêm vào dự án.) Tình trạng này thường được gọi là ô nhiễm không gian tên.