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

ความแตกต่างระหว่างเนมสเปซและคลาสใน C++


ในส่วนนี้เราจะมาดูกันว่าอะไรคือความแตกต่างระหว่างเนมสเปซและคลาสใน C++ เนมสเปซและคลาสเป็นสองแนวคิดที่แตกต่างกัน คลาสเป็นประเภทข้อมูล คลาสนั้นเป็นเวอร์ชันเสริมของโครงสร้างโดยทั่วไป คลาสสามารถมีสมาชิกข้อมูลและฟังก์ชันเป็นสมาชิกได้ แต่เนมสเปซสามารถมีตัวแปรและฟังก์ชันได้โดยการจัดกลุ่มให้เป็นหนึ่งเดียว

ไม่สามารถสร้างเนมสเปซเป็นวัตถุได้ แนวคิดนี้ใช้เป็นข้อมูลเพิ่มเติมเพื่อแยกความแตกต่างของฟังก์ชัน คลาส ตัวแปร ฯลฯ ที่คล้ายกัน ตัวแปร ฟังก์ชันที่มีชื่อเดียวกันสามารถวางในเนมสเปซที่ต่างกันได้

ตอนนี้ ให้เราชี้ให้เห็นความแตกต่างที่สำคัญของเนมสเปซและคลาส

  • เนมสเปซถูกใช้เพื่อสร้างกลุ่มของตัวระบุเพื่อไม่ให้เกิดการปะทะกัน โดยใช้คลาส เราต้องสร้างอินสแตนซ์ของคลาสนั้น แต่สำหรับเนมสเปซ สิ่งนี้ไม่เป็นความจริง

  • สำหรับเนมสเปซเราใช้การประกาศ 'โดยใช้' สำหรับชั้นเรียนนั้นเป็นไปไม่ได้ เว้นแต่ว่าเราจะได้รับจากมัน

  • เราสามารถเปิดเนมสเปซอีกครั้งและเพิ่มองค์ประกอบในหน่วยการแปล ไม่สามารถทำได้โดยใช้คลาส

namespace my_namespace {
   int function1();
}
namespace my_namespace {
   int function1();
}
  • สำหรับคลาส รหัสต่อไปนี้ใช้ไม่ได้:

class my_class {
   int function1();
};
class my_class {
   int function1();
};
  • เราสามารถใช้เนมสเปซที่ไม่มีชื่อได้ ไม่เป็นไร แต่เราไม่สามารถใช้คลาสที่ไม่มีชื่อ ซึ่งจะสร้างข้อผิดพลาดได้

namespace{ //Legal
   int function1();
};
class { //create error
   int function1();
};