Rumah >pembangunan bahagian belakang >C++ >Bilakah Mengembalikan Pembolehubah Rujukan C Selamat (dan Bila Tidak)?
Pembolehubah Rujukan C Mengembalikan: Yang Baik, Yang Buruk dan Yang Hodoh
Persoalan sama ada "jahat" untuk mengembalikan C pembolehubah rujukan telah mencetuskan perdebatan dalam komuniti pengaturcaraan. Memahami kemungkinan perangkap dan amalan terbaik boleh membantu anda membuat keputusan termaklum.
Apakah Masalahnya?
Menurut sesetengah pihak, mengembalikan rujukan boleh meningkatkan risiko kebocoran memori jika ia merujuk kepada objek yang dimusnahkan selepas panggilan fungsi. Ini boleh berlaku apabila:
The Evil Contoh
Contoh ini menggambarkan bahaya:
int& getInt() { int i; return i; // DON'T DO THIS }
Ini mengembalikan rujukan kepada pembolehubah yang diperuntukkan tindanan yang akan dimusnahkan selepas panggilan fungsi, membawa kepada tingkah laku yang tidak ditentukan.
int& getInt() { int* i = new int; return *i; // DON'T DO THIS }
Ini mengembalikan rujukan kepada pembolehubah yang diperuntukkan timbunan, tetapi pelanggan mesti secara manual padamkannya menggunakan sintaks yang mengelirukan padam &rujukan.
Amalan Terbaik
Untuk mengelakkan masalah ini, ikut garis panduan ini:
Kesimpulan
Semasa mengembalikan rujukan boleh menjadi mudah, adalah penting untuk mengetahui potensi risiko. Dengan mengikuti amalan terbaik yang diterangkan di atas, anda boleh mengelakkan kebocoran memori dan menulis kod yang selamat dan boleh diselenggara.
Atas ialah kandungan terperinci Bilakah Mengembalikan Pembolehubah Rujukan C Selamat (dan Bila Tidak)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!