首頁 >後端開發 >C++ >為什麼我不能像在 C 中包含 .h 檔案一樣包含 .cpp 檔案?

為什麼我不能像在 C 中包含 .h 檔案一樣包含 .cpp 檔案?

Linda Hamilton
Linda Hamilton原創
2024-11-29 19:39:11582瀏覽

Why Can't I Include .cpp Files Like I Include .h Files in C  ?

包含.h 和.cpp 檔案:了解差異

在C 開發中,將其他檔案合併到原始程式碼中至關重要。但是,包含頭檔 (.h) 和實作檔 (.cpp) 需要一些了解。

考慮以下程式碼:

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

此程式碼成功編譯,因為我們在main.cpp 和main.cpp 中都包含了頭檔(「foop. h”) foop.cpp。

為什麼不包含 .cpp 檔案?

現在,讓我們看看如果我們替換「#include "foop.h"」行會發生什麼main.cpp 與"#include "foop.cpp":

main.cpp
#include <iostream>
#include "foop.cpp"  // Including the implementation file

這將導致編譯器錯誤。 main.cpp 中,一次在foop.cpp 中,這種重複會使編譯器感到困惑。 ,包含頭檔至關重要(.h) 在主原始檔和使用宣告函數的任何附加來源檔案中應僅包含在一個原始檔中,以避免重複程式碼定義。

以上是為什麼我不能像在 C 中包含 .h 檔案一樣包含 .cpp 檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn