Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ข้อเสียของการใช้ whole namespace ใน C++


ใน C++ เราใช้ Namespace ต่างๆ และสามารถสร้าง Namespace เองได้ เช่นมักใช้ Standard Namespace ชื่อ std เขียนว่า

using namespace std;

ใน Standard Library มีฟังก์ชันทั่วไปที่ใช้สร้างแอปพลิเคชัน เช่น Containers, Algorithms ฯลฯ ถ้าชื่อเหล่านี้อยู่ใน Global Scope เช่นถ้า Define Class queue ไว้ Global คุณจะไม่สามารถใช้ชื่อเดียวกันได้อีกโดยไม่มี Conflict ดังนั้นพวกเขาสร้าง Namespace ชื่อ std เพื่อเก็บสิ่งเหล่านี้

คำสั่ง using namespace หมายถึง ใน Scope นั้น ให้ทำให้ทุกอย่างภายใต้ std ใช้ได้โดยไม่ต้อง prefix std:: ทุกครั้ง

แม้การทำนี้จะเหมาะสำหรับโค้ดตัวอย่าง แตการดึง namespace std ทั้งหมดเข้าสู่ Global Namespace ไม่ดี เพราะทำลายวัตถุประสงค์ของ Namespace และอาจนำไปสู่ Name Collision สถานการณ์นี้เรียกว่า Namespace Pollution