Rumah > pembangunan bahagian belakang > C++ > Mengapa Saya Perlu Sertakan Fail Pengepala (.h) dan Bukan Fail Pelaksanaan (.cpp) dalam Kod C Saya?

Mengapa Saya Perlu Sertakan Fail Pengepala (.h) dan Bukan Fail Pelaksanaan (.cpp) dalam Kod C Saya?

Mary-Kate Olsen
Lepaskan: 2024-12-11 18:01:11
asal
731 orang telah melayarinya

Why Should I Only Include Header Files (.h) and Not Implementation Files (.cpp) in My C   Code?

Memahami Pengepala dan Kemasukan Fail Pelaksanaan

Apabila bekerja dengan kod C, adalah penting untuk memahami perbezaan dalam memasukkan fail pengepala (.h) dan fail pelaksanaan (.cpp). Perbezaan ini penting untuk mengelakkan ralat penyusunan dan mengekalkan organisasi kod.

Mengapa Sertakan Fail Pengepala Sahaja?

Apabila cuba memasukkan fail pelaksanaan (.cpp) dan bukannya fail pengepala (.h), ralat kompilasi seperti "takrifan berbilang fungsi" mungkin timbul. Ini kerana pengepala terutamanya mengandungi pengisytiharan fungsi dan spesifikasi kelas, manakala fail pelaksanaan memegang pelaksanaan fungsi sebenar.

Memasukkan fail pelaksanaan secara langsung boleh membawa kepada berbilang takrifan fungsi kerana kodnya akan diduplikasi dalam berbilang fail sumber semasa kerja prapemproses. Penduaan ini mengelirukan pengkompil, mengakibatkan ralat.

Cara Penyertaan Pengepala Berfungsi

Termasuk fail pengepala menyalin kandungannya ke dalam fail sumber tempat ia dirujuk. Pertimbangkan contoh berikut:

// main.cpp
#include "foop.h"

int main() {
  int x = 42;
  std::cout << x << std::endl;
  std::cout << foo(x) << std::endl;
}
Salin selepas log masuk

Selepas prapemproses memproses kod ini, main.cpp akan kelihatan seperti:

// iostream stuff

int foo(int a) {
  return ++a;
}

int main() {
  int x = 42;
  std::cout << x << std::endl;
  std::cout << foo(x) << std::endl;
}
Salin selepas log masuk

Seperti yang anda lihat, pelaksanaan foo() kini terus dalam main.cpp. Walau bagaimanapun, jika fail pelaksanaan bernama foop.cpp turut mengandungi takrifan foo(), pengkompil akan mengesan definisi pendua dan menimbulkan ralat.

Atas ialah kandungan terperinci Mengapa Saya Perlu Sertakan Fail Pengepala (.h) dan Bukan Fail Pelaksanaan (.cpp) dalam Kod C Saya?. 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