Bagaimanakah padanan terbaik ditentukan dalam kelebihan beban fungsi C++?

王林
Lepaskan: 2024-04-26 14:45:02
asal
873 orang telah melayarinya

Turutan padanan terbaik ditentukan ialah: padanan ketepatan transformasi standard yang ditentukan pengguna bilangan lalai argumen minimum

C++ 函数重载中的 best match 是如何决定的?

Bagaimanakah padanan terbaik ditentukan dalam kelebihan beban fungsi C++?

Dalam C++, kelebihan beban fungsi membolehkan anda mencipta berbilang versi fungsi dengan nama yang sama tetapi parameter berbeza. Pengkompil mengikuti satu set peraturan untuk menentukan padanan terbaik apabila menggunakan versi terlebih muatan yang sesuai.

Peraturan:

  1. Padanan ketepatan: Peraturan ini terpakai apabila jenis peserta sebenar betul-betul sepadan dengan jenis peserta rasmi.
  2. Penukaran standard: Peraturan ini terpakai jika nombor peserta sebenar boleh ditukar secara tersirat kepada nombor peserta rasmi.
  3. Penukaran Ditakrifkan Pengguna: Jika terdapat pengendali penukaran yang ditentukan pengguna dan peserta sebenar boleh ditukar kepada peserta rasmi, maka peraturan ini terpakai.
  4. Parameter lalai: Versi terlebih muatan dengan parameter lalai mempunyai keutamaan yang lebih rendah daripada versi tanpa parameter lalai.

Susunan penentuan padanan terbaik:

  1. Pertama, pengkompil cuba melakukan padanan ketepatan.
  2. Jika tiada padanan ketepatan, pengkompil akan cuba menggunakan penukaran standard.
  3. Jika tiada penukaran standard, pengkompil akan cuba menggunakan penukaran yang ditentukan pengguna.
  4. Jika tiada transformasi digunakan, pengkompil memilih versi dengan parameter lalai yang paling sedikit.

Contoh praktikal:

Pertimbangkan kod berikut:

void foo(int x);
void foo(float x);
Salin selepas log masuk

Apabila memanggil jenis foo(3.14) 时,编译器将使用 void foo(float x) 作为最佳匹配,因为浮点常量 3.14 可以隐式转换为 float.

Nota Tambahan:

  • Pengkompil akan melaporkan ralat jika terdapat berbilang versi terlebih muatan dengan padanan terbaik yang sama.
  • Pengkompil juga akan melaporkan ralat jika ia tidak dapat menentukan padanan terbaik.
  • Untuk mengelakkan kekaburan, sebaiknya pastikan tandatangan lebihan fungsi adalah berbeza.

Atas ialah kandungan terperinci Bagaimanakah padanan terbaik ditentukan dalam kelebihan beban fungsi C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan