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

จะส่งผ่านวัตถุไปยังฟังก์ชันใน C ++ ได้อย่างไร?


มีสี่วิธีในการส่งผ่านวัตถุไปยังฟังก์ชัน สมมติว่าคุณมีคลาส X และต้องการส่งต่อไปยังฟังก์ชันที่สนุก −

ผ่านตามค่า

สิ่งนี้จะสร้างสำเนาเฉพาะของวัตถุในขอบเขตของฟังก์ชัน สิ่งที่คุณแก้ไขที่นี่จะไม่ปรากฏในวัตถุที่ส่งผ่าน ตัวอย่างเช่น

ประกาศ

void fun(X x);

การโทร

X x;
fun(x);

ผ่านโดยการอ้างอิง

สิ่งนี้ส่งผ่านการอ้างอิงไปยังอ็อบเจ็กต์ไปยังฟังก์ชัน สิ่งที่คุณแก้ไขที่นี่จะสะท้อนให้เห็นในวัตถุที่ส่งผ่านไปยังวัตถุนั้น ไม่มีการสร้างสำเนาของวัตถุ ตัวอย่างเช่น

ประกาศ

void fun(X &x);

การโทร

X x;
fun(x);

ผ่านการอ้างอิง const

สิ่งนี้ส่งผ่านการอ้างอิง const ไปยังอ็อบเจ็กต์ไปยังฟังก์ชัน คุณไม่สามารถแก้ไข/กำหนดวัตถุใหม่ได้ที่นี่โดยตรง (คุณสามารถใช้วิธีการดังกล่าวได้) สิ่งนี้มีประโยชน์หากคุณต้องการให้ฟังก์ชันมีเฉพาะสำเนาของอ็อบเจ็กต์แบบอ่านอย่างเดียว ไม่มีการสร้างสำเนาของวัตถุ ตัวอย่างเช่น

ประกาศ

void fun(X const &x);

การโทร

X x;
fun(x);

ผ่านตัวชี้ const

สิ่งนี้จะส่งผ่านตัวชี้ const ไปยังวัตถุไปยังฟังก์ชัน คุณไม่สามารถแก้ไข/กำหนดตัวชี้ใหม่ที่นี่ สิ่งนี้มีประโยชน์หากคุณต้องการให้ฟังก์ชันมีเฉพาะที่อยู่ของวัตถุนี้ในพอยน์เตอร์ ไม่มีการสร้างสำเนาของวัตถุ ตัวอย่างเช่น

ประกาศ

void fun(X const *x);

การโทร

X x;
fun(&x);

ผ่านตัวชี้ const

ซึ่งส่งผ่านตัวชี้ไปยังวัตถุไปยังฟังก์ชัน ซึ่งคล้ายกับการส่งการอ้างอิงไปยังวัตถุ ไม่มีการสร้างสำเนาของวัตถุ ตัวอย่างเช่น

ประกาศ

void fun(X *x);

การโทร

X x;
fun(&x);