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

Reference ใน C++


ตัวแปร Reference เป็น alias (ชื่อเรียกทางเลือก) กล่าวคือ อีกชื่อหนึ่งสำหรับตัวแปรที่มีอยู่แล้ว เมื่อ Reference ถูกเริ่มต้นกับตัวแปร ทั้งชื่อตัวแปรและชื่อ Reference สามารถใช้เพื่ออ้างถึงตัวแปรนั้นได้

Reference vs Pointer

Reference มักสับสนกับ Pointer แต่มีความแตกต่างหลัก 3 จุด ดังนี้ -

  • ไม่สามารถมี NULL Reference ได้ คุณต้องมั่นใจได้เสมอว่า Reference เชื่อมโยงกับหน่วยความจำที่ถูกต้อง

  • เมื่อ Reference ถูกเริ่มต้นกับออบเจกต์แล้ว จะไม่สามารถเปลี่ยนไปอ้างอิงออบเจกต์อื่นได้ Pointer สามารถชี้ไปยังออบเจกต์อื่นได้ตลอดเวลา

  • Reference ต้องถูกเริ่มต้นเมื่อถูกสร้าง Pointer สามารถเริ่มต้นได้ทุกเมื่อ

การสร้าง Reference ใน C++

คิดว่าชื่อตัวแปรเป็นป้ายกำกับที่ติดอยู่ที่ตำแหน่งหน่วยความจำของตัวแปร คุณสามารถคิดว่า Reference เป็นป้ายกำกับอีกอันหนึ่งที่ติดอยู่ที่ตำแหน่งหน่วยความจำเดียวกัน ดังนั้น คุณสามารถเข้าถึงเนื้อหาของตัวแปรได้ทั้งผ่านชื่อตัวแปรต้นฉบับและชื่อ Reference ตัวอย่างเช่น สมมติเรามีดังนี้ -

int i = 17;

เราสามารถประกาศตัวแปร Reference สำหรับ i ได้ดังนี้

int& r = i;

อ่านเครื่องหมาย & ในประกาศเหล่านี้ว่า "reference" ดังนั้น อ่านประกาศแรกว่า "r เป็น integer reference ที่เริ่มต้นด้วย i"

ตัวอย่างโค้ด

#include <iostream>
using namespace std;
int main() {
    // ประกาศตัวแปรธรรมดา
    int i;
    double d;
    // ประกาศตัวแปร Reference
    int& r = i;
    double& s = d;
    i = 5;
    cout << "Value of i : " << i << endl;
    cout << "Value of i reference : " << r << endl;
    d = 11.7;
    cout << "Value of d : " << d << endl;
    cout << "Value of d reference : " << s << endl;
    return 0;
}

ผลลัพธ์

Value of i : 5
Value of i reference : 5
Value of d : 11.7
Value of d reference : 11.7