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

วิธีส่งอ็อบเจ็กต์ไปยังฟังก์ชันในโปรแกรม C++


ใน C++ มี 4 วิธีหลักในการส่งอ็อบเจ็กต์ไปยังฟังก์ชัน สมมติว่าคุณมีคลาส X และต้องการส่งไปยังฟังก์ชัน fun ดังนี้

การส่งแบบ Pass by Value

วิธีนี้จะสร้าง shallow copy ของอ็อบเจ็กต์ในขอบเขตของฟังก์ชัน การเปลี่ยนแปลงค่าในฟังก์ชันจะไม่ส่งผลต่ออ็อบเจ็กต์ต้นฉบับ ตัวอย่างเช่น

การประกาศ

void fun(X x);

การเรียกใช้

X x; fun(x);

การส่งแบบ Pass by Reference

วิธีนี้จะส่ง reference ของอ็อบเจ็กต์ไปยังฟังก์ชัน การเปลี่ยนแปลงค่าจะส่งผลต่ออ็อบเจ็กต์ต้นฉบับ ไม่มีการสร้างสำเนาของอ็อบเจ็กต์ ตัวอย่างเช่น

การประกาศ

void fun(X &x);

การเรียกใช้

X x; fun(x);

การส่งแบบ Pass by const Reference

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

การประกาศ

void fun(const X &x);

การเรียกใช้

X x; fun(x);

การส่งแบบ Pass by const Pointer

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

การประกาศ

void fun(const X *x);

การเรียกใช้

X x; fun(&x);

การส่งแบบ Pass by Pointer

วิธีนี้จะส่ง pointer ไปยังฟังก์ชัน คล้ายกับการส่งแบบ reference ไม่มีการสร้างสำเนาของอ็อบเจ็กต์ ตัวอย่างเช่น

การประกาศ

void fun(X *x);

การเรียกใช้

X x; fun(&x);