Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah perbezaan antara kelebihan beban fungsi C++ dan menulis semula?

Apakah perbezaan antara kelebihan beban fungsi C++ dan menulis semula?

WBOY
WBOYasal
2024-04-13 18:06:01851semak imbas

Fungsi C++ terlebih muatan dan menulis semula: Terlebih muatan: Fungsi dengan nama yang sama mempunyai jenis atau nombor parameter yang berbeza, dan versi yang sesuai dipilih semasa penyusunan. Penulisan semula: Fungsi dalam kelas terbitan dengan nama yang sama dengan kelas asas mengatasi pelaksanaan kelas asas dan menyediakan pelaksanaan khusus untuk kelas terbitan. Ciri-ciri lebihan: jenis atau nombor parameter yang berbeza, terikat pada masa penyusunan. Ciri mengatasi: Jenis dan nombor parameter yang sama, pengikatan masa jalan, pewarisan diperlukan.

C++ 函数重载与重写有何区别?

C++ Fungsi Terlalu Beban dan Menulis Semula: Konsep dan Perbezaan

Melebihi muatan

  • Definisi: atau nama fungsi yang sama
  • Semantik: Pengkompil memilih versi fungsi yang sesuai berdasarkan jenis hujah atau nombor pada masa panggilan.
  • Syntax:
int sum(int a, int b);
double sum(double a, double b);

Override

  • Definisi: Suatu fungsi dalam kelas terbitan dengan nama dan tandatangan yang sama dengan kelas asas.
  • Semantik: Fungsi ganti dalam kelas terbitan akan mengatasi fungsi dengan nama yang sama dalam kelas asas, sekali gus menyediakan pelaksanaan khusus bagi kelas terbitan.
  • Sintaks:
class Base {
public:
    virtual int add(int a, int b);
};

class Derived : public Base {
public:
    int add(int a, int b) override;
};

Perbezaan

Tahap Tulis Semula WarisanParameterMengikatSama Dalam kelasDalam kelas asas dan kelas terbitan
Ciri-ciri Sarat beban Tulis Semula
Awam atau Swasta Awam atau dilindungi
Tidak diperlukan Diperlukan
Jenis atau nombor parameter yang berbeza Jenis dan nombor parameter yang sama
Masa penyusunan Rum

Kes praktikal

Beban berlebihan: Kira jumlah pelbagai jenis nombor

#include <iostream>

using namespace std;

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

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

int main() {
    cout << "整数之和:" << sum(1, 2) << endl;
    cout << "浮点数之和:" << sum(1.5, 2.5) << endl;
    return 0;
}

Tulis semula: Guna polimorfisme luas bentuk semula

Atas ialah kandungan terperinci Apakah perbezaan antara kelebihan beban fungsi C++ dan menulis semula?. 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