ความแตกต่างระหว่างฟังก์ชั่นเพื่อนและเพื่อนชั้น

ผู้เขียน: Laura McKinney
วันที่สร้าง: 1 เมษายน 2021
วันที่อัปเดต: 13 พฤษภาคม 2024
Anonim
ความแตกต่างระหว่างมุมมองบุคคลที่ 1 และบุคคลที่ 3 ของ PUBG แบบไหนดีกว่ากัน? I The Feature
วิดีโอ: ความแตกต่างระหว่างมุมมองบุคคลที่ 1 และบุคคลที่ 3 ของ PUBG แบบไหนดีกว่ากัน? I The Feature

เนื้อหา


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

คุณสมบัติเพื่อน ไม่ว่าจะใช้โดยฟังก์ชั่นหรือระดับสามารถสร้างผลกระทบเชิงลบต่อกรอบเชิงวัตถุตามที่มันอ่อนแอ encapsulation ซึ่งผิดกับ เชิงวัตถุ ตัวอย่าง นี่คือเหตุผลที่คุณลักษณะเพื่อนต้องใช้อย่างฉลาด หยุด การซ่อนข้อมูล ของรหัส

ฟีเจอร์เพื่อนนี้ไม่ใช่ สับเปลี่ยน และหรือ เกี่ยวกับสกรรมกริยา. X คือเพื่อนของ Y ไม่ได้อนุมานว่า Y ยังเป็นเพื่อนของ X ด้วยถ้า X เป็นเพื่อนของ Y และ Y เป็นเพื่อนของ Z ไม่ได้บอกเป็นนัยว่า X เป็นเพื่อนของ Z

    1. แผนภูมิเปรียบเทียบ
    2. คำนิยาม
    3. ความแตกต่างที่สำคัญ
    4. ข้อสรุป

แผนภูมิเปรียบเทียบ

พื้นฐานสำหรับการเปรียบเทียบฟังก์ชั่นเพื่อนเพื่อนชั้น
ขั้นพื้นฐานมันเป็นฟังก์ชั่นที่ใช้กับคำหลักเพื่อนเพื่อให้การเข้าถึงฟังก์ชั่นที่ไม่ใช่สมาชิกให้กับสมาชิกส่วนตัวของชั้นเรียนมันเป็นชั้นเรียนที่ใช้กับคำหลักเพื่อนในการเข้าถึงสมาชิกส่วนตัวของชั้นเรียนอื่น
ส่งต่อการประกาศจะต้องใช้ไม่บังคับ
ใช้ฟังก์ชั่นเพื่อนสามารถนำมาใช้ในบางสถานการณ์ของการบรรทุกเกินพิกัดคลาสเพื่อนสามารถใช้เมื่อสร้างคลาสที่ด้านบนของคลาสอื่น


ความหมายของฟังก์ชั่นเพื่อน

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

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

#include ใช้ namespace std; ชั้นแรก {ข้อมูล int; สาธารณะ: แรก (int i): data (i) {} การแสดงเป็นโมฆะเพื่อน (const first & a); }; void display (กลุ่มแรก & a) {ศาล << "data =" <ใช้ namespace std; class First {// // ประกาศเพื่อน class class เพื่อน Second; สาธารณะ: First (): a (0) {} เป็นโมฆะ () {ศาล << "ผลที่ได้คือ" << a << endl; } ส่วนตัว: int a; }; ชั้นสอง {สาธารณะ: การเปลี่ยนแปลงเป็นโมฆะ (First & yclass, int x) {yclass.a = x; }}; int main () obj1 แรก; ที่สอง obj2; obj1 (). obj2.change (obj1, 5); obj1 (). // ผลลัพธ์ผลลัพธ์คือ 0 ผลลัพธ์คือ 5

  1. ฟังก์ชั่นเพื่อนเป็นฟังก์ชั่นที่สามารถเข้าถึงสมาชิกส่วนตัวและได้รับการป้องกันของชั้นเรียน ในทางตรงกันข้ามชั้นเรียนเป็นชั้นเรียนที่ช่วยในการเข้าถึงสมาชิกส่วนตัวของชั้นเรียน
  2. ฟังก์ชั่นเพื่อนได้รับการประกาศโดยรวมถึงต้นแบบของมันในชั้นเรียนต่อต้านมันด้วยคำหลักเพื่อน ในทำนองเดียวกันคลาสเพื่อนก็มีการกำหนดโดยใช้คำหลักเพื่อน
  3. การประกาศไปข้างหน้าถูกนำมาใช้ในกรณีที่ฟังก์ชั่นเพื่อนขัดต่อมันไม่จำเป็นต้องใช้มันในชั้นเรียนเพื่อน

ข้อสรุป

จำเป็นต้องใช้ฟังก์ชั่นเพื่อนเมื่อฟังก์ชั่นต้องการเข้าถึงคลาสอิสระอย่างน้อยสองคลาสสมาชิกภายใน ในทางตรงกันข้ามชั้นเรียนเป็นสิ่งจำเป็นเมื่อชั้นเรียนต้องการเข้าถึงสมาชิกของชั้นเรียนอื่น เมื่อฟังก์ชั่นสมาชิกหลายคนจำเป็นต้องเป็นเพื่อนของฟังก์ชันนั้นในกรณีนั้นจะเป็นการดีกว่าถ้าใช้คลาสเพื่อน