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
Mary-Kate Olsenasal
2024-12-11 18:01:11786semak imbas

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;
}

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;
}

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!

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