คำถามติดแท็ก namespaces

เนมสเปซคือคอนเทนเนอร์ที่จัดเตรียมบริบทสำหรับตัวระบุซึ่งชื่อจะไม่ซ้ำกัน

5
วิธีการโอเวอร์โหลดโอเปอเรเตอร์ << สำหรับ ostream อย่างถูกต้องหรือไม่
ฉันกำลังเขียนไลบรารีเมทริกซ์ขนาดเล็กใน C ++ สำหรับการดำเนินการเมทริกซ์ อย่างไรก็ตามคอมไพเลอร์ของฉันบ่นซึ่งก่อนหน้านั้นไม่ได้ รหัสนี้ถูกวางไว้บนหิ้งเป็นเวลา 6 เดือนและในระหว่างที่ฉันอัพเกรดคอมพิวเตอร์ของฉันจากเดเบียนจำหลักเป็นเลนนี่ (g ++ (เดเบียน 4.3.2-1.1) 4.3.2) แต่ฉันมีปัญหาเดียวกันในระบบ Ubuntu ที่มี g ++ เดียวกัน . นี่คือส่วนที่เกี่ยวข้องของคลาสเมทริกซ์ของฉัน: namespace Math { class Matrix { public: [...] friend std::ostream&amp; operator&lt;&lt; (std::ostream&amp; stream, const Matrix&amp; matrix); } } และ "การใช้งาน": using namespace Math; std::ostream&amp; Matrix::operator &lt;&lt;(std::ostream&amp; stream, const Matrix&amp; …

15
คุณใช้เนมสเปซใน C ++ อย่างไร
ฉันมาจากพื้นหลังของจาวาที่ซึ่งมีการใช้งานแพ็คเกจไม่ใช่เนมสเปซ ฉันเคยใส่ชั้นเรียนที่ทำงานร่วมกันเพื่อสร้างวัตถุที่สมบูรณ์ลงในแพคเกจแล้วนำมาใช้ใหม่ในภายหลังจากแพ็คเกจนั้น แต่ตอนนี้ฉันทำงานใน C ++ คุณใช้เนมสเปซใน C ++ ได้อย่างไร คุณสร้างเนมสเปซเดียวสำหรับแอปพลิเคชันทั้งหมดหรือคุณสร้างเนมสเปซสำหรับส่วนประกอบหลักหรือไม่ ถ้าเป็นเช่นนั้นคุณจะสร้างวัตถุจากคลาสในเนมสเปซอื่น ๆ ได้อย่างไร?
231 c++  namespaces 

3
อะไรคือความแตกต่างระหว่าง * และ * | * ใน CSS?
ใน CSS *จะจับคู่องค์ประกอบใด ๆ *|*มีการใช้บ่อยครั้งแทนที่จะ*จับคู่องค์ประกอบทั้งหมด โดยทั่วไปจะใช้เพื่อการทดสอบ ความแตกต่างระหว่าง*และ*|*ใน CSS คืออะไร?

6
Django:“ โปรเจ็กต์” เทียบกับ“ แอพ”
ฉันมี "ผลิตภัณฑ์" ที่ค่อนข้างซับซ้อนฉันพร้อมที่จะสร้างโดยใช้ Django ฉันจะหลีกเลี่ยงการใช้คำว่า "โครงการ" และ "แอปพลิเคชัน" ในบริบทนี้เพราะฉันไม่ชัดเจนเกี่ยวกับความหมายเฉพาะของพวกเขาใน Django โครงการสามารถมีแอพมากมาย สามารถแชร์แอพได้ในหลายโครงการ ละเอียด. ฉันไม่ได้สร้างบล็อกหรือฟอรัมใหม่ - ฉันไม่เห็นส่วนใด ๆ ของผลิตภัณฑ์ที่สามารถใช้ซ้ำได้ในทุกบริบท ฉันจะเรียกแอปพลิเคชั่นนี้ว่า ฉันจะทำงานทั้งหมดของฉันในโฟลเดอร์ "แอพ" เดียวหรือไม่? ถ้าเป็นเช่นนั้น ... ในแง่ของproject.appเนมสเปซของ Django ความชอบของฉันคือการใช้myproduct.myproductแต่แน่นอนว่านี่ไม่ได้รับอนุญาต (แต่แอปพลิเคชันที่ฉันสร้างคือโครงการของฉันและโครงการของฉันเป็นแอปพลิเคชั่น!) ฉันจึงเชื่อว่าบางทีฉันควรเข้าใกล้ Django ด้วยการสร้างแอปหนึ่งตัวต่อโมเดล "สำคัญ" แต่ฉันไม่รู้ว่าจะวาดขอบเขตในสคีมาของฉันเพื่อแยกมันออกเป็นแอพได้อย่างไร - ฉันมีจำนวนมาก โมเดลที่มีความสัมพันธ์ค่อนข้างซับซ้อน ฉันหวังว่าจะมีวิธีแก้ปัญหาทั่วไปสำหรับเรื่องนี้ ...

13
วิธีที่ดีที่สุดในการแก้ไขการชนกันของเนมสเปซ Objective-C คืออะไร
วัตถุประสงค์ -C ไม่มีเนมสเปซ มันเหมือนกับ C ทุกอย่างอยู่ในเนมสเปซส่วนกลางเดียว วิธีปฏิบัติทั่วไปคือการเติมคำนำหน้าคลาสด้วยชื่อย่อเช่นถ้าคุณทำงานที่ IBM คุณสามารถใช้คำนำหน้าด้วย "IBM" ถ้าคุณทำงานให้ Microsoft คุณสามารถใช้ "MS"; และอื่น ๆ บางครั้งชื่อย่ออ้างถึงโครงการเช่น Adium นำหน้าคลาสด้วย "AI" (เนื่องจากไม่มี บริษัท ใดอยู่ด้านหลังซึ่งคุณสามารถใช้ชื่อย่อได้) คำนำหน้าของ Apple คลาสที่มี NS และบอกว่าคำนำหน้านี้สงวนไว้สำหรับ Apple เท่านั้น จนถึงตอนนี้ก็ดี แต่การเพิ่มตัวอักษร 2 ถึง 4 ตัวต่อท้ายชื่อคลาสด้านหน้าเป็นเนมสเปซที่ จำกัด มาก เช่น MS หรือ AI อาจมีความหมายที่แตกต่างกันโดยสิ้นเชิง (เช่น AI เป็นปัญญาประดิษฐ์เป็นต้น) และผู้พัฒนารายอื่นอาจตัดสินใจใช้และสร้างคลาสที่มีชื่อเท่าเทียมกัน บางชน namespace เอาล่ะถ้านี่เป็นการชนกันระหว่างคลาสของคุณเองกับหนึ่งในเฟรมเวิร์กภายนอกที่คุณใช้อยู่คุณสามารถเปลี่ยนการตั้งชื่อคลาสของคุณได้โดยง่าย …

4
\ (แบ็กสแลช) ทำอะไรใน PHP (5.3+)
สิ่งที่จะ\ทำใน PHP? ยกตัวอย่างเช่นCSRF4PHPมี\FALSE, \session_idและ\Exception: public function __construct($timeout=300, $acceptGet=\FALSE){ $this-&gt;timeout = $timeout; if (\session_id()) { $this-&gt;acceptGet = (bool) $acceptGet; } else { throw new \Exception('Could not find session id', 1); } }

5
เหตุใดฉันจึงไม่สามารถประกาศคลาสในเนมสเปซโดยใช้ double colons ได้
class Namespace::Class; ทำไมฉันต้องทำสิ่งนี้: namespace Namespace { class Class; } การใช้ VC ++ 8.0 ปัญหาเกี่ยวกับคอมไพเลอร์: ข้อผิดพลาด C2653: 'Namespace': ไม่ใช่ชื่อคลาสหรือเนมสเปซ ฉันคิดว่าปัญหาที่นี่คือคอมไพเลอร์ไม่สามารถบอกได้ว่าNamespaceเป็นคลาสหรือ namespace หรือไม่? แต่ทำไมเรื่องนี้ถึงเกิดขึ้นเพราะมันเป็นเพียงการประกาศล่วงหน้า มีวิธีการส่งต่อประกาศคลาสที่กำหนดไว้ในบาง namespace หรือไม่ ไวยากรณ์ข้างต้นรู้สึกเหมือนฉัน "เปิดใหม่" namespace และขยายคำจำกัดความ เกิดอะไรขึ้นถ้าClassไม่ได้นิยามไว้จริง ๆNamespace? บางครั้งจะส่งผลให้เกิดข้อผิดพลาดหรือไม่?
164 c++  namespaces 

7
printf with std :: string?
ความเข้าใจของฉันคือว่าstringเป็นสมาชิกของstdnamespace ดังนั้นทำไมต่อไปนี้เกิดขึ้น #include &lt;iostream&gt; int main() { using namespace std; string myString = "Press ENTER to quit program!"; cout &lt;&lt; "Come up and C++ me some time." &lt;&lt; endl; printf("Follow this command: %s", myString); cin.get(); return 0; } แต่ละครั้งที่โปรแกรมทำงานmyStringพิมพ์สตริงสุ่มที่ดูเหมือนว่า 3 ตัวอักษรเช่นในเอาต์พุตด้านบน
157 c++  string  namespaces  printf  std 


22
ฉันจะรับชื่อคลาส (สั้น) ที่ไม่มีเงื่อนไขของวัตถุได้อย่างไร
ฉันจะตรวจสอบคลาสของวัตถุภายในสภาพแวดล้อมแบบเว้นวรรคชื่อ PHP ได้อย่างไรโดยไม่ต้องระบุคลาสเนมสเปซเต็มรูปแบบ ตัวอย่างเช่นสมมติว่าฉันมีไลบราวัตถุ / นิติบุคคล / สัญญา / ชื่อ รหัสต่อไปนี้ใช้งานไม่ได้เนื่องจาก get_class ส่งคืนคลาสเนมสเปซเต็ม If(get_class($object) == 'Name') { ... do this ... } คีย์เวิร์ดมายากลเนมสเปซส่งคืนเนมสเปซปัจจุบันซึ่งไม่มีประโยชน์หากอ็อบเจ็กต์ที่ทดสอบมีเนมสเปซอื่น ฉันสามารถระบุชื่อคลาสแบบเต็มด้วยเนมสเปซได้ แต่นี่ดูเหมือนจะล็อคในโครงสร้างของโค้ด ยังไม่ได้ใช้มากถ้าฉันต้องการเปลี่ยน namespace แบบไดนามิก ทุกคนสามารถคิดวิธีที่มีประสิทธิภาพในการทำเช่นนี้ ฉันเดาตัวเลือกหนึ่งคือ regex
153 php  class  namespaces 

5
ประกาศ enum ภายในคลาส
ในโค้ดต่อไปนี้Colorenum จะถูกประกาศภายในCarคลาสเพื่อ จำกัด ขอบเขตของ enum และพยายามที่จะไม่ "สร้างมลภาวะ" เนมสเปซส่วนกลาง class Car { public: enum Color { RED, BLUE, WHITE }; void SetColor( Car::Color color ) { _color = color; } Car::Color GetColor() const { return _color; } private: Car::Color _color; }; (1) นี่เป็นวิธีที่ดีในการ จำกัด ขอบเขตของColorenum หรือไม่? หรือฉันควรประกาศมันนอกCarชั้นเรียน แต่อาจจะอยู่ในเนมสเปซหรือ struct ของตัวเอง? ฉันเพิ่งมาข้ามบทความนี้ในวันนี้ซึ่งสนับสนุนหลังและกล่าวถึงจุดที่ดีบางอย่างเกี่ยวกับ …
151 c++  class  enums  namespaces  scope 

5
ฉันจะสร้างแพ็คเกจเนมสเปซใน Python ได้อย่างไร
ใน Python แพ็คเกจเนมสเปซช่วยให้คุณสามารถแพร่กระจายรหัส Python ในหลายโครงการ สิ่งนี้มีประโยชน์เมื่อคุณต้องการปล่อยไลบรารีที่เกี่ยวข้องเป็นการดาวน์โหลดแยกต่างหาก ตัวอย่างเช่นกับไดเรกทอรีPackage-1และPackage-2ในPYTHONPATH, Package-1/namespace/__init__.py Package-1/namespace/module1/__init__.py Package-2/namespace/__init__.py Package-2/namespace/module2/__init__.py ผู้ใช้ปลายทางสามารถและimport namespace.module1import namespace.module2 เป็นวิธีที่ดีที่สุดในการกำหนดแพ็คเกจเนมสเปซดังนั้นมากกว่าหนึ่งผลิตภัณฑ์งูหลามสามารถกำหนดโมดูลในเนมสเปซนั้นคืออะไร?

11
โมดูล Python ElementTree: วิธีละเว้นเนมสเปซของไฟล์ XML เพื่อค้นหาองค์ประกอบที่ตรงกันเมื่อใช้เมธอด "find", "findall"
ฉันต้องการใช้เมธอด "findall" เพื่อค้นหาองค์ประกอบบางอย่างของไฟล์ xml ต้นทางในโมดูล ElementTree อย่างไรก็ตามไฟล์ xml ต้นทาง (test.xml) มีเนมสเปซ ฉันตัดส่วนของไฟล์ xml เป็นตัวอย่าง: &lt;?xml version="1.0" encoding="iso-8859-1"?&gt; &lt;XML_HEADER xmlns="http://www.test.com"&gt; &lt;TYPE&gt;Updates&lt;/TYPE&gt; &lt;DATE&gt;9/26/2012 10:30:34 AM&lt;/DATE&gt; &lt;COPYRIGHT_NOTICE&gt;All Rights Reserved.&lt;/COPYRIGHT_NOTICE&gt; &lt;LICENSE&gt;newlicense.htm&lt;/LICENSE&gt; &lt;DEAL_LEVEL&gt; &lt;PAID_OFF&gt;N&lt;/PAID_OFF&gt; &lt;/DEAL_LEVEL&gt; &lt;/XML_HEADER&gt; โค้ด python ตัวอย่างอยู่ด้านล่าง: from xml.etree import ElementTree as ET tree = ET.parse(r"test.xml") el1 = tree.findall("DEAL_LEVEL/PAID_OFF") # Return None el2 …


7
โฟลเดอร์ในโซลูชันควรตรงกับเนมสเปซหรือไม่
โฟลเดอร์ในโซลูชันควรตรงกับเนมสเปซหรือไม่ ในโปรเจ็กต์ทีมหนึ่งของฉันเรามีไลบรารีคลาสที่มีโฟลเดอร์ย่อยมากมายในโปรเจ็กต์ ชื่อโครงการและเนมสเปซ: MyCompany.Project.Section. ภายในโปรเจ็กต์นี้มีหลายโฟลเดอร์ที่ตรงกับส่วนเนมสเปซ: โฟลเดอร์VehiclesมีคลาสในMyCompany.Project.Section.Vehiclesเนมสเปซ โฟลเดอร์ClothingมีคลาสในMyCompany.Project.Section.Clothingเนมสเปซ เป็นต้น ภายในโปรเจ็กต์เดียวกันนี้เป็นอีกโฟลเดอร์โกง โฟลเดอร์BusinessObjectsมีคลาสในMyCompany.Project.Sectionเนมสเปซ มีบางกรณีเช่นนี้ที่สร้างโฟลเดอร์ขึ้นมาเพื่อ "ความสะดวกสบายขององค์กร" คำถามของฉันคือมาตรฐานคืออะไร? ในไลบรารีคลาสโฟลเดอร์มักจะตรงกับโครงสร้างเนมสเปซหรือเป็นกระเป๋าแบบผสม?
129 c#  .net  namespaces 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.