Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah pengendali penukaran berfungsi dalam C dan bila pengkompil menggunakannya untuk penggantian jenis?

Bagaimanakah pengendali penukaran berfungsi dalam C dan bila pengkompil menggunakannya untuk penggantian jenis?

Patricia Arquette
Lepaskan: 2024-11-20 00:13:02
asal
304 orang telah melayarinya

How do conversion operators work in C   and when does the compiler use them for type substitution?

Operator Penukaran dalam C

Soalan: Bagaimanakah pengendali penukaran berfungsi dalam C , dan bila pengkompil cuba untuk menggantikan jenis yang ditakrifkan selepas penukaran operator?

Jawapan: Operator penukaran dalam C memudahkan penukaran jenis antara kelas atau daripada kelas kepada jenis asas. Pengkompil menggantikan jenis yang ditentukan selepas operator penukaran dalam situasi berikut:

Penukaran semasa Hantar Argumen:

  • Semasa menghantar hujah, peraturan untuk pemulaan salinan memohon, mempertimbangkan sebarang fungsi penukaran tidak kira sama ada ia menukar kepada rujukan atau tidak.
  • Contoh: batal f(B); int main() { f(A()); }

Penukaran kepada Rujukan:

  • Dalam pengendali bersyarat, penukaran kepada jenis rujukan adalah mungkin jika jenis yang ditukar kepada adalah nilai.
  • Contoh: B b; 0 ? b : A();

Penukaran kepada Penunjuk Fungsi:

  • Fungsi penukaran kepada penunjuk fungsi atau rujukan boleh digunakan apabila panggilan fungsi sedang dibuat.
  • Contoh: typedef void (*fPtr)(int); void foo(int a); ujian struct { operator fPtr() { return foo; } };

Penukaran kepada Jenis Bukan Kelas:

  • Fungsi penukaran yang ditentukan pengguna boleh digunakan untuk penukaran tersirat yang melibatkan jenis bukan kelas .
  • Contoh: ujian struct { operator bool() { return true; } };

Templat Fungsi Penukaran:

  • Templat boleh digunakan untuk mencipta fungsi penukaran yang membenarkan sesuatu jenis boleh ditukar kepada sebarang jenis penunjuk .
  • Contoh: ujian struct { templat operator T*() { return 0; } };
  • Awas: Ini harus digunakan dengan berhati-hati kerana boleh membawa kepada penukaran yang tidak jelas.

Atas ialah kandungan terperinci Bagaimanakah pengendali penukaran berfungsi dalam C dan bila pengkompil menggunakannya untuk penggantian jenis?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan