Rumah > pembangunan bahagian belakang > C++ > Bolehkah Kaedah C Dibebankan Semata-mata Berdasarkan Jenis Pemulangan?

Bolehkah Kaedah C Dibebankan Semata-mata Berdasarkan Jenis Pemulangan?

Susan Sarandon
Lepaskan: 2024-12-18 08:57:09
asal
662 orang telah melayarinya

Can C   Methods Be Overloaded Based Solely on Return Type?

Kaedah Lebihan Muatan Berdasarkan Jenis Pemulangan

Lebih muatan membolehkan berbilang fungsi berkongsi nama yang sama tetapi mesti mempunyai tandatangan yang berbeza. Walau bagaimanapun, seperti yang ditunjukkan oleh mesej ralat, tidak mungkin untuk membebankan kaedah semata-mata berdasarkan jenis pemulangannya dalam C . Resolusi beban lampau mempertimbangkan tandatangan fungsi, yang termasuk nama fungsi, kelayakan CV dan jenis parameter.

Untuk menangani isu ini, terdapat beberapa pilihan:

  1. Namakan semula Kaedah: Berikan nama yang berbeza untuk setiap fungsi dengan jenis pulangan yang berbeza, menjadikan tujuannya jelas.
  2. Gunakan Parameter Keluar: Lulus nilai hasil sebagai parameter keluar, menghapuskan keperluan untuk jenis pulangan yang berbeza.
  3. Pertimbangkan Templat: Gunakan templat untuk mencipta fungsi generik yang mengendalikan pelbagai jenis data , menawarkan penyelesaian yang fleksibel tetapi memerlukan pemahaman yang lebih mendalam tentang templat.

Dalam kes khusus yang disediakan, di mana My mempunyai dua kaedah get() dengan jenis pulangan yang berbeza, kod berikut menunjukkan pilihan:

Pilihan 1: Namakan semula Kaedah

class My {
public:
    int getInt(int);
    char getChar(int);
};
Salin selepas log masuk

Pilihan 2: Gunakan Parameter Keluar

class My {
public:
    void get(int, int&);
    void get(int, char&);
};
Salin selepas log masuk

Atas ialah kandungan terperinci Bolehkah Kaedah C Dibebankan Semata-mata Berdasarkan Jenis Pemulangan?. 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