Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapakah Ahli Data Statik Memerlukan Permulaan Luar Kelas dalam C ?

Mengapakah Ahli Data Statik Memerlukan Permulaan Luar Kelas dalam C ?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-04 19:23:01680semak imbas

Why Do Static Data Members Require Out-of-Class Initialization in C  ?

Memahami Permulaan Ahli Data Statik

Mengapa Permulaan Luar Kelas untuk Ahli Data Statik?

Dalam pengaturcaraan berorientasikan objek, ahli data statik , dikenali sebagai pembolehubah peringkat kelas, dikongsi antara semua kejadian kelas. Tidak seperti ahli data biasa yang wujud dalam setiap objek, ahli data statik wujud di luar mana-mana tika objek.

Untuk memastikan peruntukan alamat unik dan konsisten mereka, ahli data statik memerlukan satu definisi yang jelas dalam atur cara. Takrifan ini tidak boleh diletakkan dalam definisi kelas kerana definisi kelas biasanya disertakan dalam berbilang fail objek, yang membawa kepada potensi definisi pendua. Oleh itu, takrifan ahli data statik mesti diisytiharkan secara berasingan.

Pengisytiharan lwn. Definisi dan NSDMI

Pengamalan ahli data bukan statik (NSDMI) membenarkan pengaturcara menentukan nilai awal untuk bukan statik ahli data dalam definisi kelas. Walau bagaimanapun, ini hanyalah permulaan, bukan definisi. Takrifan sebenar ahli data, sama ada statik atau tidak statik, berlaku di luar kelas.

Peruntukan Memori dan Sepanjang Hayat

Ahli data bukan statik disimpan dalam objek yang dimilikinya . Hayat mereka bermula dengan pembina objek. Ahli data statik, sebaliknya, wujud secara bebas daripada objek, tinggal di alamat tetap dari permulaan program. Mereka diperuntukkan memori pada masa penyusunan.

Mentakrifkan Ahli Data Statik: Selari dengan Pembolehubah luaran

Mentakrifkan ahli data statik adalah serupa dengan mengisytiharkan pembolehubah luaran dalam C . Pengisytiharan pembolehubah luaran, seperti extern int i;, menunjukkan bahawa pembolehubah i diisytiharkan di tempat lain dalam atur cara. Begitu juga, ahli data statik diisytiharkan dalam definisi kelas, tetapi takrifan mereka disediakan secara berasingan menggunakan sintaks seperti int X::i = 0;, dengan X ialah nama kelas dan i ialah ahli data statik.

Atas ialah kandungan terperinci Mengapakah Ahli Data Statik Memerlukan Permulaan Luar Kelas dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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