ความแตกต่างระหว่างฟังก์ชั่นเพื่อนและเพื่อนชั้น
เนื้อหา
ฟังก์ชันเพื่อนและคลาสเพื่อนเป็นเทคนิคที่ใช้ในการเข้าถึงสมาชิกส่วนตัวของชั้นเรียนโดยใช้คำหลักเพื่อน ความแตกต่างทั่วไประหว่างฟังก์ชั่นเพื่อนและเพื่อนชั้นคือเมื่อใช้ฟังก์ชั่นเพื่อนสมาชิกชั้นเรียนส่วนตัวสามารถเข้าถึงได้ แต่ในชั้นเรียนเพื่อนเฉพาะชื่อของชั้นเรียนที่มีการเข้าถึงไม่ได้เป็นสมาชิกส่วนตัวของชั้นเรียน
คุณสมบัติเพื่อน ไม่ว่าจะใช้โดยฟังก์ชั่นหรือระดับสามารถสร้างผลกระทบเชิงลบต่อกรอบเชิงวัตถุตามที่มันอ่อนแอ encapsulation ซึ่งผิดกับ เชิงวัตถุ ตัวอย่าง นี่คือเหตุผลที่คุณลักษณะเพื่อนต้องใช้อย่างฉลาด หยุด การซ่อนข้อมูล ของรหัส
ฟีเจอร์เพื่อนนี้ไม่ใช่ สับเปลี่ยน และหรือ เกี่ยวกับสกรรมกริยา. X คือเพื่อนของ Y ไม่ได้อนุมานว่า Y ยังเป็นเพื่อนของ X ด้วยถ้า X เป็นเพื่อนของ Y และ Y เป็นเพื่อนของ Z ไม่ได้บอกเป็นนัยว่า X เป็นเพื่อนของ Z
-
- แผนภูมิเปรียบเทียบ
- คำนิยาม
- ความแตกต่างที่สำคัญ
- ข้อสรุป
แผนภูมิเปรียบเทียบ
พื้นฐานสำหรับการเปรียบเทียบ | ฟังก์ชั่นเพื่อน | เพื่อนชั้น |
---|---|---|
ขั้นพื้นฐาน | มันเป็นฟังก์ชั่นที่ใช้กับคำหลักเพื่อนเพื่อให้การเข้าถึงฟังก์ชั่นที่ไม่ใช่สมาชิกให้กับสมาชิกส่วนตัวของชั้นเรียน | มันเป็นชั้นเรียนที่ใช้กับคำหลักเพื่อนในการเข้าถึงสมาชิกส่วนตัวของชั้นเรียนอื่น |
ส่งต่อการประกาศ | จะต้องใช้ | ไม่บังคับ |
ใช้ | ฟังก์ชั่นเพื่อนสามารถนำมาใช้ในบางสถานการณ์ของการบรรทุกเกินพิกัด | คลาสเพื่อนสามารถใช้เมื่อสร้างคลาสที่ด้านบนของคลาสอื่น |
ความหมายของฟังก์ชั่นเพื่อน
ฟังก์ชั่นเพื่อน ใช้ในการเข้าถึงสมาชิกส่วนตัวและได้รับการป้องกันของชั้นเรียนโดยอนุญาตให้ฟังก์ชั่นที่ไม่ใช่สมาชิกได้รับการเข้าถึง ในฟังก์ชั่นประเภทนี้คีย์เวิร์ดของเพื่อนจะถูกใช้ก่อนชื่อฟังก์ชั่น ณ เวลาที่ประกาศ มีเงื่อนไขข้อ จำกัด บางประการที่นำไปใช้กับฟังก์ชั่นเพื่อน เงื่อนไขแรกคือฟังก์ชั่นเพื่อนนั้นไม่ได้รับการสืบทอดโดยคลาสลูก เงื่อนไขที่สองคือตัวระบุคลาสหน่วยเก็บข้อมูลอาจไม่ปรากฏในฟังก์ชันเพื่อนซึ่งหมายความว่าไม่สามารถประกาศว่าเป็นแบบคงที่และภายนอกได้
ฟังก์ชั่นเพื่อนไม่ได้ถูกเรียกด้วยวัตถุที่อ้างถึงของชั้นเรียน ตัวอย่างของฟังก์ชั่นเพื่อนคือฟังก์ชั่นทั่วโลกฟังก์ชั่นสมาชิกของชั้นเรียนแม่แบบฟังก์ชั่นสามารถฟังก์ชั่นเพื่อน ลองเข้าใจด้วยความช่วยเหลือของตัวอย่าง
#include จำเป็นต้องใช้ฟังก์ชั่นเพื่อนเมื่อฟังก์ชั่นต้องการเข้าถึงคลาสอิสระอย่างน้อยสองคลาสสมาชิกภายใน ในทางตรงกันข้ามชั้นเรียนเป็นสิ่งจำเป็นเมื่อชั้นเรียนต้องการเข้าถึงสมาชิกของชั้นเรียนอื่น เมื่อฟังก์ชั่นสมาชิกหลายคนจำเป็นต้องเป็นเพื่อนของฟังก์ชันนั้นในกรณีนั้นจะเป็นการดีกว่าถ้าใช้คลาสเพื่อน
ข้อสรุป