Bagaimana untuk Melaksanakan Blok Kod Statik dalam C Tanpa Menggunakan Kelas?

DDD
Lepaskan: 2024-10-26 07:59:03
asal
211 orang telah melayarinya

How to Implement Static Code Blocks in C   Without Using Classes?

Blok Kod Statik dalam C : Pendekatan Alternatif Di Luar 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.

Pilihan 1: Permulaan Semasa Pemuatan Proses/Pemuatan DLL

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>
Salin selepas log masuk

Dengan menggunakan static_block seperti yang ditunjukkan di atas, kod yang disertakan akan dijalankan sebelum fungsi main().

Pilihan 2: Permulaan Semasa Instantiation Kelas Pertama

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!