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

WBOY
Lepaskan: 2024-04-13 18:06:01
asal
873 orang telah melayarinya

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);
Salin selepas log masuk

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;
};
Salin selepas log masuk

Perbezaan

Tahap Tulis Semula WarisanParameterMengikatSama Dalam kelasDalam kelas asas dan kelas terbitan
Ciri-ciriSarat bebanTulis Semula
Awam atau Swasta Awam atau dilindungi
Tidak diperlukanDiperlukan
Jenis atau nombor parameter yang berbezaJenis dan nombor parameter yang sama
Masa penyusunanRum

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;
}
Salin selepas log masuk

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!

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