Trong tất cả các khóa học c ++ của chúng tôi, tất cả các giáo viên luôn đặt using namespace std;
ngay sau #include
s trong .h
tệp của họ . Điều này đối với tôi dường như là nguy hiểm kể từ đó bằng cách đưa tiêu đề đó vào một 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 mình, có thể mà không nhận ra, dự định hoặc muốn nó (bao gồm tiêu đề có thể được lồng rất sâu).
Vì vậy, câu hỏi của tôi là kép: Tôi có đúng là using namespace
không nên được sử dụng trong các tệp tiêu đề và / hoặc có cách nào đó để hoàn tác nó, một cái gì đó như:
//header.h
using namespace std {
.
.
.
}
Một câu hỏi nữa dọc theo những dòng tương tự: Liệu một tệp tiêu đề có #include
tất cả các tiêu đề mà .cpp
tệp tương ứng của nó cần, chỉ những tiêu đề cần thiết cho định nghĩa tiêu đề và để .cpp
tệp #include
còn lại, hay không có và khai báo mọi thứ mà nó cần extern
?
Lý do đằng sau câu hỏi tương tự như trên: Tôi không muốn bất ngờ khi bao gồm.h
các tệp.
Ngoài ra, nếu tôi đúng, đây có phải là một lỗi phổ biến 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.
using namespace
câu lệnh thì bạn có thể sử dụng tên đủ điều kiện để giải quyết vấn đề.