Trong tất cả các khóa học C++ của chúng tôi, tất cả giáo viên luôn đặt using namespace std;
ngay sau #include
s trong các tệp .h
của chúng. Điều này dường như với tôi là nguy hiểm kể từ đó bằng cách đưa tiêu đề đó vào chương trình khác, tôi sẽ nhận được không gian tên được nhập vào chương trình của tôi, có thể không nhận ra, dự định hoặc muốn nó (bao gồm tiêu đề có thể lồng nhau rất sâu)."sử dụng không gian tên" trong tiêu đề C++
Vì vậy, câu hỏi của tôi là kép: Tôi có quyền đó using namespace
nên không được sử dụng trong các tập tin tiêu đề, và/hoặc là có một số cách để hủy bỏ nó, một cái gì đó như:
//header.h
using namespace std {
.
.
.
}
Một câu hỏi nữa dọc theo cùng dòng: Tập tin tiêu đề có phải là #include
tất cả tiêu đề tương ứng với .cpp
nhu cầu tệp hay không, chỉ cho phép các tệp .cpp
#include
phần còn lại hoặc không và khai báo mọi thứ cần là extern
?
Lý do đằng sau câu hỏi là giống như trên: Tôi không muốn bất ngờ khi bao gồm các tệp .h
.
Ngoài ra, nếu tôi đúng, đây có phải là lỗi thường gặp không? Ý tôi là trong lập trình thế giới thực và trong các dự án "thực" ngoài kia.
Cảm ơn bạn.
http://stackoverflow.com/questions/1265039/using-std-namespace –
là một lưu ý phụ, nếu bạn nhận được các xung đột tên do các câu lệnh 'using namespace' thì bạn có thể sử dụng tên đầy đủ để giải quyết vấn đề. –