


Rujukan Tidak Ditakrifkan kepada Ahli Statik: Panduan Pemula
Ahli data statik sering digunakan untuk berkongsi maklumat merentas kejadian kelas. Walau bagaimanapun, pembangun kadangkala menghadapi ralat "rujukan tidak ditentukan" apabila menggunakan ahli data statik. Isu ini timbul disebabkan oleh perbezaan antara pengisytiharan dan takrifan.
Memahami Pengisytiharan dan Takrifan
Satu pengisytiharan memperkenalkan kewujudan pembolehubah kepada pengkompil tanpa menyatakan lokasi memorinya. Definisi, sebaliknya, memperuntukkan memori untuk pembolehubah dan memberikan alamatnya.
Dalam kes ahli data statik, pengisytiharan mereka berlaku dalam definisi kelas tetapi tidak memberikan mereka alamat. Takrifan sebenar mesti disediakan secara berasingan.
Menentukan Ahli Data Statik
Untuk menyelesaikan ralat "rujukan tidak ditentukan", tentukan secara eksplisit ahli data statik di luar definisi kelas, biasanya dalam fail pelaksanaan (.cpp). Sebagai contoh, pertimbangkan kod berikut:
// Header file (.h) class Example { static bool exampleStaticMember; }; // Implementation file (.cpp) bool Example::exampleStaticMember;
Pengecualian untuk Jenis Kamiran dan Penghitungan
Ahli data statik jenis kamiran atau penghitungan boleh dimulakan terus dalam kelas definisi:
class Example { static const int initialized = 15; };
Dalam kes ini, takrifan dalam fail pelaksanaan mesti meninggalkan pemula:
const int Example::initialized;
Ahli Data Statik dalam Templat
Untuk templat, ahli data statik ditakrifkan dalam fail pengepala bersama-sama dengan pengisytiharan kelas. Pengecualian kepada Peraturan Satu Definisi membenarkan berbilang takrifan ahli data statik templat kelas.
Kegunaan "statik" Lain
Di luar skop kelas, "statik" mempunyai makna tambahan:
- Dalam skop fungsi, ia mencipta objek berterusan yang mengekalkan nilainya merentas fungsi panggilan.
- Pada skop ruang nama, ia mengisytiharkan objek dan fungsi dengan pautan dalaman, walaupun penggunaan ini tidak digalakkan untuk objek.
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat \'Rujukan Tidak Ditakrifkan\' dengan Ahli Statik dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel ini menerangkan Perpustakaan Templat St Standard (STL), yang memberi tumpuan kepada komponen terasnya: bekas, iterator, algoritma, dan functors. Ia memperincikan bagaimana ini berinteraksi untuk membolehkan pengaturcaraan generik, meningkatkan kecekapan kod dan kebolehbacaan t

Artikel ini memperincikan penggunaan algoritma STL yang cekap dalam c. Ia menekankan pilihan struktur data (vektor vs senarai), analisis kerumitan algoritma (mis., Std :: Sort vs Std :: partial_sort), penggunaan iterator, dan pelaksanaan selari. Perangkap biasa seperti

Artikel ini membincangkan penghantaran dinamik dalam C, kos prestasinya, dan strategi pengoptimuman. Ia menyoroti senario di mana penghantaran dinamik memberi kesan kepada prestasi dan membandingkannya dengan penghantaran statik, menekankan perdagangan antara prestasi dan

Artikel ini butiran pengendalian pengecualian yang berkesan di C, meliputi percubaan, menangkap, dan membuang mekanik. Ia menekankan amalan terbaik seperti RAII, mengelakkan blok tangkapan yang tidak perlu, dan pengecualian pembalakan untuk kod yang mantap. Artikel ini juga menangani perf

C 20 julat meningkatkan manipulasi data dengan ekspresi, komposiliti, dan kecekapan. Mereka memudahkan transformasi kompleks dan mengintegrasikan ke dalam kod sedia ada untuk prestasi dan kebolehkerjaan yang lebih baik.

Artikel ini membincangkan menggunakan semantik Move dalam C untuk meningkatkan prestasi dengan mengelakkan penyalinan yang tidak perlu. Ia meliputi pelaksanaan pembina bergerak dan pengendali tugasan, menggunakan STD :: bergerak, dan mengenal pasti senario utama dan perangkap untuk Appl yang berkesan

Artikel membincangkan penggunaan rujukan RValue yang berkesan dalam C untuk bergerak semantik, pemajuan sempurna, dan pengurusan sumber, menonjolkan amalan terbaik dan penambahbaikan prestasi. (159 aksara)

Pengurusan memori C menggunakan petunjuk baru, memadam, dan pintar. Artikel ini membincangkan manual vs pengurusan automatik dan bagaimana penunjuk pintar menghalang kebocoran memori.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Dreamweaver Mac版
Alat pembangunan web visual

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.
