ในหลักสูตร c ++ ทั้งหมดของเราครูทุกคนจะใส่using namespace std;หลัง#includes ลงใน.hไฟล์เสมอ สิ่งนี้ดูเหมือนว่าฉันจะเป็นอันตรายตั้งแต่นั้นมาโดยการรวมส่วนหัวนั้นไว้ในโปรแกรมอื่นฉันจะได้รับเนมสเปซที่นำเข้ามาในโปรแกรมของฉันอาจจะโดยไม่รู้ตัวตั้งใจหรือต้องการ (การรวมส่วนหัวอาจซ้อนกันได้ลึกมาก)
ดังนั้นคำถามของฉันจึงเป็นสองเท่า: ฉันพูดถูกหรือusing namespaceเปล่าที่ไม่ควรใช้ในไฟล์ส่วนหัวและ / หรือมีวิธียกเลิกบางอย่างเช่น:
//header.h
using namespace std {
.
.
.
}
อีกหนึ่งคำถามในบรรทัดเดียวกัน: ส่วนหัวควรจัดเก็บส่วนหัว#includeทั้งหมดที่.cppไฟล์นั้นต้องการเฉพาะคำถามที่จำเป็นสำหรับคำจำกัดความของส่วนหัวและปล่อยให้.cppไฟล์#includeเหลือหรือไม่มีเลยและประกาศทุกสิ่งที่ต้องการเป็นextern?
เหตุผลเบื้องหลังคำถามก็เหมือนกับข้างบน: ฉันไม่ต้องการความประหลาดใจเมื่อรวม.hไฟล์
นอกจากนี้ถ้าฉันพูดถูกนี่เป็นข้อผิดพลาดทั่วไปหรือไม่ ฉันหมายถึงการเขียนโปรแกรมในโลกแห่งความเป็นจริงและในโครงการ "จริง" ที่นั่น
ขอบคุณ.
using namespaceข้อความคุณสามารถใช้ชื่อที่มีคุณสมบัติครบถ้วนเพื่อแก้ปัญหา