Pembina C++ menyokong beban berlebihan, tetapi pemusnah tidak. Pembina boleh mempunyai senarai parameter yang berbeza, manakala pemusnah hanya boleh mempunyai senarai parameter kosong kerana ia dipanggil secara automatik apabila memusnahkan contoh kelas tanpa parameter input.
Adakah lebihan fungsi dalam C++ dikenakan kepada pembina dan pemusnah?
Pengenalan
Pembebanan fungsi membolehkan fungsi mempunyai senarai parameter berbeza dengan nama yang sama. Ini membolehkan nama fungsi yang sama digunakan dalam cara yang sedikit berbeza dalam senario yang berbeza. Artikel ini meneroka sama ada lebihan fungsi terpakai kepada pembina dan pemusnah dalam C++.
Constructor
Constructor digunakan untuk mencipta tika kelas. C++ membenarkan berbilang pembina untuk kelas yang sama, masing-masing dengan senarai parameter yang berbeza. Ini dipanggil overloading pembina. Contohnya:
class MyClass { public: MyClass() {} // 默认构造函数 MyClass(int a) {} // 带有一个 int 参数的构造函数 };
Destructor
Destructor digunakan untuk memusnahkan kejadian kelas. Sama seperti pembina, C++ juga membenarkan berbilang pemusnah untuk kelas yang sama, tetapi mereka hanya boleh mempunyai satu senarai hujah, yang mesti kosong. Ini kerana pemusnah sentiasa dipanggil apabila contoh kelas dimusnahkan dan ia tidak sepatutnya menerima sebarang parameter. Oleh itu, pemusnah tidak boleh dibebankan.
Kes praktikal
Contoh berikut menunjukkan lebihan beban pembina:
#include <iostream> class Shape { public: Shape() {} // 默认构造函数 Shape(int width) : m_width(width) {} // 带有一个 int 参数的构造函数 private: int m_width; }; int main() { Shape s1; // 调用默认构造函数 Shape s2(5); // 调用带有一个 int 参数的构造函数 std::cout << s2.m_width << std::endl; // 输出 5 return 0; }
Kesimpulan
Pembina boleh terlebih beban, tetapi pemusnah tidak boleh. Kerana pemusnah sentiasa dipanggil apabila contoh kelas dimusnahkan dan tidak boleh menerima sebarang parameter.
Atas ialah kandungan terperinci Adakah lebihan fungsi C++ dikenakan kepada pembina dan pemusnah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!