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 *x);

กำลังโทร

X x;
fun(&x);

ผ่านพอยน์เตอร์

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

ประกาศ

<void fun(X *x);>

กำลังโทร

X x;
fun(&x);