Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Melaksanakan Blok Kod Statik dalam C Tanpa Menggunakan Kelas?
Walaupun C tidak menyokong blok kod statik secara langsung dalam kelas, penyelesaiannya adalah dengan menggunakan blok kod statik di luar kelas. Pendekatan ini membenarkan pelaksanaan kod semasa pemuatan kelas atau apabila DLL yang mengandungi dimuatkan.
Untuk mencapainya, anda boleh mencipta statik blok pada skop unit terjemahan, biasanya dalam fail pelaksanaan untuk kelas anda. Contohnya:
<code class="cpp">static_block { // Here you can perform initialization code std::cout << "Hello static block world!\n"; }</code>
Dengan menggunakan static_block seperti yang ditunjukkan di atas, kod yang disertakan akan dijalankan sebelum fungsi main().
Untuk pilihan ini, pertimbangkan struktur kelas berikut:
<code class="cpp">class StaticInitialized { public: static bool staticsInitialized = false; virtual void initializeStatics(); StaticInitialized() { if (!staticsInitialized) { initializeStatics(); staticsInitialized = true; } } }; class MyClass : private StaticInitialized { public: static int field1; static int field2; protected: void initializeStatics() { // Here you can perform initialization code specific to MyClass field1 = 42; field2 = 100; } };</code>
Dalam contoh ini, fungsi initializeStatics() adalah maya dan boleh ditindih dalam kelas terbitan untuk logik permulaan tertentu. Bendera StaticsInitialized memastikan bahawa kod permulaan hanya dijalankan sekali sebelum sebarang tika kelas dibuat.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Blok Kod Statik dalam C Tanpa Menggunakan Kelas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!