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