Memahami Hantaran Objek dalam C : Mengikut Nilai atau Rujukan?
Dalam C , apabila fungsi dipanggil dengan hujah, persoalan timbul sama ada hujah diluluskan dengan nilai atau rujukan. Ini amat relevan apabila berurusan dengan objek.
Hujah Melepasi dalam C
Secara lalai, hujah dihantar melalui nilai dalam C , bermakna salinan hujah yang diluluskan dicipta dan dihantar ke fungsi. Walau bagaimanapun, tingkah laku ini boleh ditindih menggunakan pengendali rujukan (&) dalam tandatangan fungsi.
Melalui Objek dalam C
Dalam kes objek, situasinya adalah sedikit lebih kompleks. Apabila objek dihantar ke fungsi sebagai hujah, secara lalai, hanya rujukan (atau penunjuk) kepada objek diluluskan, bukan salinan objek itu sendiri. Ini kerana mencipta salinan objek boleh menjadi operasi yang memakan masa dan intensif ingatan.
Akibat Melewati Objek melalui Rujukan
Melalui objek melalui rujukan telah beberapa akibat penting:
Contoh:
Pertimbangkan coretan kod berikut:
class Point { public: int x, y; }; void myFunction(Point& point) { point.x = 10; point.y = 20; } int main() { Point point; myFunction(point); // The original point object will now have its x and y coordinates set to 10 and 20, respectively. }
Dalam contoh ini, titik objek dilalui oleh merujuk kepada fungsi myFunction. Sebarang perubahan yang dibuat pada titik dalam myFunction akan menjejaskan objek titik asal secara langsung.
Kesimpulan
Ringkasnya, C menghantar objek secara rujukan secara lalai. Ini membolehkan penggunaan memori yang cekap, terutamanya untuk objek besar. Walau bagaimanapun, ia juga memperkenalkan potensi untuk alias dan memerlukan pengendalian rujukan objek yang teliti untuk mengelakkan kesan sampingan yang tidak diingini.
Atas ialah kandungan terperinci C Lulus Objek: Mengikut Nilai atau Rujukan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!