Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Melaksanakan Rangkaian Pembina dalam C?
Bolehkah saya Memanfaatkan Constructor Chaining dalam C ?
Constructor chaining, konsep biasa kepada pembangun C#, membenarkan pelaksanaan satu pembina daripada yang lain. Ini menyediakan cara yang cekap untuk memulakan objek dalam kelas induk dan kelas terbitannya.
C 11 and Beyond: Constructor Chaining
Dalam C 11 dan versi yang lebih baru, constructor rantaian disokong melalui pembina perwakilan. Sintaks menyimpang sedikit daripada C#:
class Foo { public: Foo(char x, int y) {} Foo(int y) : Foo('a', y) {} };
Kod ini mentakrifkan dua pembina: satu yang mengambil (char x, int y) dan satu lagi yang mengambil (int y). Pembina kedua memanggil pembina pertama menggunakan penunjuk ini untuk memulakan x kepada 'a'.
C 03: Simulasi Pembina
Malangnya, C 03 tidak menyokong secara asli rantaian pembina. Walau bagaimanapun, dua kaedah boleh mensimulasikan kesannya:
class Foo { public: Foo(char x, int y = 0); // This combines (char) and (char, int) constructors. };
class Foo { public: Foo(char x); Foo(char x, int y); private: void init(char x, int y); }; Foo::Foo(char x) : Foo(x, int(x) + 7) {} // Calls init(x, int(x) + 7). Foo::Foo(char x, int y) : Foo(x, y) {} // Calls init(x, y). void Foo::init(char x, int y) {}
Dengan merujuk Soalan Lazim C untuk panduan lanjut, anda boleh mensimulasikan rantaian pembina dengan berkesan dalam C 03 menggunakan kaedah ini.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Rangkaian Pembina dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!