Menamakan Semula Fungsi dalam C
Menetapkan nama baharu pada fungsi bukanlah semudah untuk jenis, pembolehubah atau ruang nama. Walau bagaimanapun, terdapat beberapa pendekatan yang tersedia:
1. Makro:
Kaedah paling mudah ialah menggunakan definisi makro. Contohnya, #define holler printf. Ini mencipta alias simbol, tetapi ia adalah arahan prapemproses dan bukan alias fungsi sebenar.
2. Penunjuk dan Rujukan Fungsi:
Penunjuk dan rujukan fungsi boleh merujuk kepada fungsi sedia ada. Sebagai contoh, batal (*p)() = fn; mencipta penunjuk yang menghala ke fn dan batal (&&r)() = fn; mencipta rujukan kepada fn.
3. Pembungkus Fungsi Sebaris:
Pembungkus fungsi sebaris ialah pilihan lain. Anda boleh menentukan fungsi baharu yang hanya memanggil fungsi asal. Contohnya, inline void g(){ f(); }.
4. Templat Alias (C 11 dan Kemudian):
Dengan C 11, anda boleh menggunakan templat alias untuk fungsi bukan templat, tidak terlebih beban:
const auto& new_fn_name = old_fn_name;
Untuk fungsi terlampau beban, gunakan tuangan statik:
const auto& new_fn_name = static_cast<OVERLOADED_FN_TYPE>(old_fn_name);
5. Pembolehubah Templat Constexpr (C 14 dan Kemudian):
C 14 memperkenalkan pembolehubah templat constexpr, yang membolehkan penyalian fungsi templat:
template<typename T> constexpr void old_function(/* args */); template<typename T> constexpr auto alias_to_old = old_function<T>;
6. std::mem_fn (C 11 dan Kemudian):
Untuk fungsi ahli, anda boleh menggunakan fungsi std::mem_fn untuk mencipta alias:
auto greet = std::mem_fn(&A::f);
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menamakan Semula Fungsi dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!