Melebihi Muatan Fungsi Statik dengan Fungsi Bukan Statik dalam C
Konteks:
Melebihi fungsi dengan jenis pulangan yang berbeza tidak disokong dalam C , dan perkara yang sama berlaku apabila cuba membebankan fungsi statik dengan fungsi bukan statik. Senario ini digambarkan dalam definisi kelas yang disediakan, tetapi ia menghasilkan ralat.
Larangan Standard:
Tingkah laku ini dilarang secara jelas oleh standard C (ISO 14882: 2003, Seksyen 13.1/2):
Pertimbangan Kekaburan:
Walaupun lebihan muatan dibenarkan, ia akan menimbulkan kesamaran kerana:
Contohnya:
<code class="cpp">class Foo { public: static void print() { cout << "static" << endl; } }; Foo f; f.print(); // Ambiguous: static or non-static call?</code>
Pendekatan Alternatif:
Memandangkan menentukan sama ada fungsi dipanggil secara statik atau tidak tidak boleh dilakukan dalam C , kaedah alternatif boleh digunakan untuk mencapai kefungsian yang diingini:
Atas ialah kandungan terperinci Bolehkah Fungsi Statik Dibebankan dengan Fungsi Bukan Statik dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!