เนมสเปซ คืออะไร? เหตุใดจึงเขียน โดยใช้เนมสเปซ std;
นี่เป็นกลไกที่เพิ่งเปิดตัวในภาษา C++ โดยส่วนใหญ่จะแก้ปัญหาการตั้งชื่อที่ขัดแย้งกันระหว่างหลายโมดูล เช่นเดียวกับคนสองคนที่มีชื่อเดียวกันในชีวิตจริง C++ ใส่ชื่อเดียวกันในช่องว่างที่แตกต่างกันเพื่อป้องกันความขัดแย้งของชื่อ
ตัวอย่างเช่น อ็อบเจ็กต์ที่จัดทำโดยไลบรารี C++ มาตรฐานจะถูกจัดเก็บไว้ในเนมสเปซมาตรฐาน เช่น cin, cout และ endl ดังนั้นเราจะเห็นประโยคที่ใช้เนมสเปซ std ในโปรแกรม C++ เช่นโปรแกรม:
#include<iostream>usingnamespacestd;intmain(){cout<<Nicetomeetyou!<<endl;return0;}
หากโปรแกรมใช้ cout และ endl จะต้องแจ้งล่วงหน้าเพื่อใช้ std namespace นอกจากนี้ ยังมีวิธีเขียนอีกสองวิธี
ประเภทที่สอง: ใช้ ตัวระบุโดเมน:: เพื่อระบุทีละรายการ รหัสในตอนนี้ยังสามารถเขียนเป็น:
#include<iostream>intmain(){std::cout<<Nicetomeetyou!<<std::endl;return0;}
คุณเห็นสิ่งนั้นไหม? cout และ endl ถูกระบุตามลำดับด้วย std:: ซึ่งบ่งชี้ว่ามาจาก std
วิธีที่สาม: ใช้ การใช้ และ ตัวระบุโดเมน เพื่อระบุชื่อที่จะใช้ เช่น รหัส:
#include<iostream>usingstd::cout;usingstd::endl;intmain(){cout<<Nicetomeetyou!<<endl;return0;}
คุณเห็นสิ่งนั้นไหม? คุณยังสามารถใช้โดยใช้เพื่อประกาศชื่อเฉพาะก่อนได้
คุณสามารถใช้วิธีใดก็ได้จากสามวิธีข้างต้น เพื่อประโยชน์ในการรวมกันและความสะดวกสบายในอนาคต เราจะใช้วิธีการเขียนแบบแรกในบทช่วยสอนของเรา
เป็นที่น่าสังเกตว่า ที่จริงแล้ว มาตรฐาน C++ ยุคแรกๆ ไม่มีแนวคิดเรื่องเนมสเปซ และไฟล์ส่วนหัวที่รวมไว้ก็เหมือนกับ C โดยมีส่วนต่อท้าย .h เพียงแต่ว่าเมื่อใช้ไฟล์ส่วนหัวที่ไม่มี .h เพื่อรวมไว้ในมาตรฐานใหม่ จะต้องประกาศเนมสเปซและไฟล์ส่วนหัวที่รวมไว้มาก่อน และเนมสเปซที่ใช้จะถูกประกาศเป็นอันดับสุดท้าย