Termasuk Fail .h dan .cpp: Memahami Perbezaan
Dalam pembangunan C, memasukkan fail lain ke dalam kod sumber adalah penting. Walau bagaimanapun, kemasukan fail pengepala (.h) dan fail pelaksanaan (.cpp) memerlukan sedikit pemahaman.
Pertimbangkan kod berikut:
main.cpp #include <iostream> #include "foop.h" // Including the header file int main() { int x = 42; std::cout << x << std::endl; std::cout << foo(x) << std::endl; return 0; }
foop.h #ifndef FOOP_H #define FOOP_H int foo(int a); // Declaring the function prototype #endif
foop.cpp #include "foop.h" // Including the header file, just for safety int foo(int a) { return ++a; }
Kod ini berjaya menyusun kerana kami telah memasukkan fail pengepala ("foop.h") dalam kedua-dua main.cpp dan foop.cpp.
Mengapa tidak memasukkan fail .cpp?
Sekarang, mari lihat apa yang berlaku jika kita menggantikan baris "#include "foop.h"" dalam main.cpp dengan "#include "foop.cpp":
main.cpp #include <iostream> #include "foop.cpp" // Including the implementation file
Ini akan menghasilkan pengkompil ralat. Mengapa? Kerana memasukkan fail pelaksanaan akan menduplikasi kod yang terkandung dalam fail sumber semasa Dalam contoh kami, fungsi "foo" akan ditakrifkan dua kali: sekali dalam main.cpp dan sekali dalam foop.cpp pengkompil, yang membawa kepada ralat "takrif berbilang".
Kesimpulan
Oleh itu, adalah penting untuk sertakan fail pengepala (.h) dalam kedua-dua fail sumber utama dan mana-mana fail sumber tambahan yang menggunakan fungsi yang diisytiharkan (.cpp) hendaklah disertakan dalam satu fail sumber sahaja untuk mengelakkan penduaan definisi kod.
Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Sertakan Fail .cpp Seperti Saya Sertakan Fail .h dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!