มีข่าวลือว่าการใช้งาน C ++ ในช่วงต้นมีตัวดำเนินการ dot สำหรับการเข้าถึงเนมสเปซ มีความเห็นว่าจุดที่สะดวกกว่าที่ผู้ประกอบการลำไส้ใหญ่สองครั้งที่ทันสมัย
อะไรคือเหตุผลที่อยู่เบื้องหลังการแนะนำลำไส้ใหญ่คู่
มีข่าวลือว่าการใช้งาน C ++ ในช่วงต้นมีตัวดำเนินการ dot สำหรับการเข้าถึงเนมสเปซ มีความเห็นว่าจุดที่สะดวกกว่าที่ผู้ประกอบการลำไส้ใหญ่สองครั้งที่ทันสมัย
อะไรคือเหตุผลที่อยู่เบื้องหลังการแนะนำลำไส้ใหญ่คู่
คำตอบ:
ตามที่สังเกตโดย Julesมันเป็นความจริงที่ว่าการใช้งาน C ++ ในช่วงต้น (CFront pre-1.0) มีจุดสำหรับการระบุขอบเขต
จุดยังใช้ในC กับ Classes (1980) อันที่จริงนี่เป็นตัวอย่างง่ายๆจากคลาส: สิ่งอำนวยความสะดวกประเภทข้อมูลนามธรรมสำหรับภาษา C 1 :
class stack {
char s[SIZE]; /* array of characters */
char * min; /* pointer to bottom of stack */
char * top; /* pointer to top of stack */
char * max; /* pointer to top of allocated space */
void new(); /* initialization function (constructor) */
public:
void push(char);
char pop();
};
char stack.pop()
{
if (top <= min) error("stack underflow");
return *(−−top);
}
(รหัสเป็นตัวอย่างของวิธีการที่ฟังก์ชันสมาชิกกำหนดโดยทั่วไป "ที่อื่น")
::
เป็นหนึ่งของการเพิ่มเพื่อC ที่มีการเรียนการสอนนำไปผลิต C ++
เหตุผลที่ได้รับจาก Stroustrup ตัวเอง:
ใน C กับคลาสจุดถูกใช้เพื่อแสดงความเป็นสมาชิกของคลาสรวมทั้งแสดงการเลือกสมาชิกของวัตถุเฉพาะ
นี่เป็นสาเหตุของความสับสนเล็กน้อยและยังสามารถใช้เพื่อสร้างตัวอย่างที่คลุมเครือ เพื่อบรรเทาสิ่งนี้
::
ได้รับการแนะนำให้รู้จักกับความเป็นสมาชิกของชั้นเรียนและ.
ถูกสงวนไว้เฉพาะสำหรับการเป็นสมาชิกของวัตถุ
( ประวัติของ C ++: 1979−1991 [2] หน้า 21 - § 3.3.1)
Bjarne Stroustrup: "Classes: สิ่งอำนวยความสะดวกประเภทข้อมูลนามธรรมสำหรับภาษา C" - รายงานทางเทคนิคด้านวิทยาศาสตร์คอมพิวเตอร์ของ Bell Laboratories CSTR − 84 เมษายน 2523
Bjarne Stroustrup: "ประวัติของ C ++: 1979−1991" - AT&T Bell Laboratories Murray Hill, นิวเจอร์ซีย์ 07974
::symbol
สามารถบังคับให้ค้นหาsymbol
ใน namespace ทั่วโลกแทน namespace ปัจจุบันดังนั้นอย่างน้อยสิ่งหนึ่งที่จะดูสับสนมากและอาจแนะนำความคลุมเครือเกี่ยวกับการใช้ภาษามากขึ้น ตัวดำเนินการจุดถูกใช้แทน