Rumah >pembangunan bahagian belakang >C++ >Bolehkah saya Menentukan Fungsi Ahli Sebaris dalam Fail .cpp dan Masih Mendapat Sebaris?
Definisi Fungsi Ahli Sebaris dalam Fail .cpp
Dalam C , fungsi ahli sebaris sebaiknya ditakrifkan dalam fail pengepala untuk membenarkan pengkompil untuk menyelaraskannya semasa penyusunan. Walau bagaimanapun, situasi tertentu mungkin memerlukan meletakkan pelaksanaan di luar pengepala, seperti kebergantungan bulat antara kelas.
Dalam contoh yang diberikan, kelas A termasuk kelas B, yang seterusnya termasuk pengisytiharan hadapan A. Untuk mengelakkan pekeliling ini, fungsi getA() kelas B ditakrifkan dalam B.cpp. Ini menimbulkan persoalan: adakah pengkompil masih sebaris getA(), dan jika ya, definisi manakah yang diutamakan?
Mengikut Soalan Lazim C, takrifan fungsi sebaris mesti diletakkan dalam fail pengepala untuknya untuk kelihatan kepada semua fail sumber yang menggunakannya. Oleh itu, dalam senario ini, pengkompil tidak akan sebaris getA(), kecuali apabila dipanggil dalam B.cpp itu sendiri.
Amalan terbaik menentukan bahawa kata kunci sebaris hanya boleh digunakan sekali, dalam definisi fungsi di luar kelas badan. Oleh itu, mana-mana kata kunci sebaris yang diletakkan dalam fail pengepala adalah berlebihan.
Malangnya, tiada kaedah yang diketahui untuk menentukan fungsi ahli sebaris dalam fail .cpp sambil masih memastikan sebarisnya oleh pengkompil.
Atas ialah kandungan terperinci Bolehkah saya Menentukan Fungsi Ahli Sebaris dalam Fail .cpp dan Masih Mendapat Sebaris?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!