Jenis Penunjuk 'ini'
Dalam C , penunjuk 'ini' dalam kaedah kelas merujuk kepada contoh objek semasa. Jenisnya bergantung pada sama ada kaedah itu diisytiharkan const atau tidak.
Kaedah Dalaman Bukan Malar:
Dalam kaedah bukan malar, 'ini' adalah jenis Nama Kelas* ini. Ini membenarkan pengubahsuaian terus pembolehubah ahli objek.
Kaedah Dimalarkan Dalam:
Dalam kaedah const, 'ini' adalah daripada jenis Const ClassName* this. Ini kerana kaedah const tidak boleh mengubah suai keadaan objek.
Kebiasaan Pengkompil dan Sekatan Dilaksanakan:
Sesetengah penyusun, seperti versi MSVC yang lebih lama, boleh melaksanakan ' ini' sebagai penunjuk tetap, tidak kira sama ada kaedah itu const atau tidak. Walau bagaimanapun, ini ialah tingkah laku bukan standard yang tidak mematuhi spesifikasi bahasa C.
Pengesanan Rujukan Nilai:
Dengan pengenalan rujukan nilai dalam C 11, ia menjadi mungkin untuk mengesan tingkah laku tidak standard ini. Kod yang bergantung pada ini akan gagal untuk menyusun dalam pengkompil yang mematuhi standard.
Pelaksanaan MSVC:
Sehingga Visual Studio 2017, MSVC masih menggunakan pelaksanaan bukan standard 'ini' sebagai penunjuk tetap. Ini boleh membawa kepada isu dengan kod yang menggunakan rujukan nilai.
Atas ialah kandungan terperinci Apakah Jenis Penunjuk 'ini' dalam Kaedah Malar dan Tidak Malar C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!