Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Perbezaan antara kelebihan beban fungsi C++ dan templat fungsi

Perbezaan antara kelebihan beban fungsi C++ dan templat fungsi

WBOY
WBOYasal
2024-04-14 08:21:02623semak imbas

Perbezaan antara lebihan fungsi dan templat fungsi: Lebihan fungsi: fungsi domain yang sama dengan nama yang sama tetapi jenis dan nombor input berbeza Fungsi yang sepadan dipilih mengikut jenis input semasa penyusunan. Templat fungsi: Definisi fungsi umum yang menggunakan ruang letak jenis untuk menjana fungsi khusus berdasarkan jenis input semasa instantiasi. Perbezaan antara kelebihan beban fungsi dan templat fungsi dalam C++ .

Apabila fungsi terlebih beban dipanggil, pengkompil akan menentukan fungsi yang hendak dipanggil berdasarkan jenis dan bilangan parameter yang dihantar masuk. C++ 函数重载和函数模板的区别

Contoh kod:

int add(int a, int b) {
  return a + b;
}

double add(double a, double b) {
  return a + b;
}

int main() {
  int result1 = add(1, 2); // 调用 int add()
  double result2 = add(1.5, 2.5); // 调用 double add()
  return 0;
}

Templat fungsi

  • Templat fungsi ialah definisi fungsi umum yang mentakrifkan rangka kerja fungsi, termasuk pemegang tempat jenis untuk parameter formal.
  • Apabila membuat templat fungsi, pengkompil akan menjana fungsi tertentu berdasarkan parameter jenis yang dihantar.

Contoh kod:

template <typename T>
T add(T a, T b) {
  return a + b;
}

int main() {
  int result1 = add<int>(1, 2); // 实例化 int add()
  double result2 = add<double>(1.5, 2.5); // 实例化 double add()
  return 0;
}

Perbezaan

  • Peranan:
  • Pembebanan fungsi digunakan untuk mencipta fungsi dengan fungsi yang sama tetapi templat berbeza adalah jenis input yang digunakan, sementara boleh mengendalikan jenis input generik yang berbeza daripada fungsi data.

Pengendalian jenis: Pembebanan fungsi mengendalikan jenis konkrit, manakala templat fungsi mengendalikan parameter jenis.

Kecekapan: Pembebanan fungsi selalunya lebih cekap daripada templat fungsi kerana pengkompil hanya perlu memilih fungsi sedia ada, manakala templat fungsi perlu menjana fungsi baharu pada instantiasi.

Atas ialah kandungan terperinci Perbezaan antara kelebihan beban fungsi C++ dan templat fungsi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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