Bagaimana untuk Memulakan Ahli Data Statik dalam C Tanpa Menggunakan Pembina Instance?

Barbara Streisand
Lepaskan: 2024-11-07 20:25:03
asal
259 orang telah melayarinya

How to Initialize Static Data Members in C   Without Using the Instance Constructor?

Permulaan Statik: Panduan Komprehensif

Dalam pengaturcaraan berorientasikan objek, ahli data statik dikongsi antara semua kejadian kelas. Biasanya, ia dimulakan dalam pembina contoh. Walau bagaimanapun, bagaimana jika anda ingin menyediakan ahli data statik tanpa bergantung pada pembina contoh?

Untuk meniru gelagat pembina statik, cipta kelas berasingan untuk merangkum data statik. Sebagai contoh, pertimbangkan kelas berikut:

class C {
    // read-only, can also be static const
    // should be filled with all characters from 'a' to 'z'
    static std::vector<char> alphabet;
public:
    C() { /* ... */ }
};
Salin selepas log masuk

Untuk mencapai ini, takrifkan data statik dalam kelas biasa yang berasingan:

class StaticStuff {
    std::vector<char> letters_;
public:
    StaticStuff() {
        for (char c = 'a'; c <= 'z'; c++) {
            letters_.push_back(c);
        }
    }
};
Salin selepas log masuk

Sekarang, buat contoh statik kelas ini dalam kelas asal:

class Elsewhere {
    static StaticStuff staticStuff; // constructor runs once, single instance
};
Salin selepas log masuk

Dengan mencipta contoh statik kelas StaticStuff, anda pada asasnya memulakan ahli data statik sebelum sebarang contoh kelas Elsewhere dibuat, meniru kefungsian pembina statik dengan berkesan.

Atas ialah kandungan terperinci Bagaimana untuk Memulakan Ahli Data Statik dalam C Tanpa Menggunakan Pembina Instance?. 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
Artikel terbaru oleh pengarang
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!