Permulaan Statik dalam C : Alternatif kepada Pembina Statik
Dalam C , memulakan ahli data statik peribadi boleh menimbulkan cabaran kerana kekurangan daripada pembina statik. Walau bagaimanapun, terdapat penyelesaian elegan yang mencerminkan kefungsian pembina statik dalam bahasa lain.
Menggunakan Kelas Berasingan
Untuk mensimulasikan permulaan statik, cipta kelas biasa yang berasingan untuk memegang data statik dan mengisytiharkan contoh statik kelas ini dalam kelas yang memerlukannya. Contohnya:
// StaticStuff class holds static data class StaticStuff { std::vector<char> letters_; public: // Constructor initializes data StaticStuff() { for (char c = 'a'; c <= 'z'; c++) letters_.push_back(c); } // Provide access to static data std::vector<char>& letters() { return letters_; } }; // Class that uses static data class C { // Static instance of StaticStuff (initialized once) static StaticStuff staticStuff; };
Dalam contoh ini, StaticStuff memegang huruf data statik_, dan pembinanya memulakannya apabila instantiasi pertama. Instance statik staticStuff diisytiharkan dalam C, menyediakan akses kepada data statik dari dalam kelas C.
Kelebihan
Pendekatan ini menawarkan beberapa faedah:
Atas ialah kandungan terperinci Bagaimana untuk Mensimulasikan Pembina Statik dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!