標頭檔案的包含以及命名空間的引入盡量寫在cpp裡

2021-07-27 19:31:04 字數 656 閱讀 4208

原文:

1,標頭檔案盡量包含在cpp檔案裡,而不是h檔案裡

2,不要在標頭檔案中使用using namespace

經常在標頭檔案中使用namespace。但這樣的結果就是,這個標頭檔案會被其他的檔案所包含,那麼這樣那個檔案也用了namespace所指定的命名空間,這並不是我們所期望的,可能導致衝突。所以不要在標頭檔案裡面使用namespace,特別是介面標頭檔案。

比如說:

在a.h中

using namespace std;

在b.h中,

我們自己定義了乙個類vector,

class vector

本想這個類是純粹我們自己定義的,不是std的那個。

可是在b.cpp中,

我們#include "b.h"

#include "a.h"

vector a;

在編譯到此的時候,編譯器就會報錯,不知道這個vector到底是std的那個,還是我們自己定義的那個。

所以我們最好不要在標頭檔案中使用using namespace ***;我們可以在標頭檔案中直接使用全名稱。在cpp中可以放心地使用它。

標頭檔案命名空間問題

在這裡,我毫不迴避地說了這句話 我再也不想在任何標頭檔案中看到 using namespace 了 作為乙個開發者 團隊領導者,我經常會去招聘新的專案成員,有時候也幫助其他組的人來面試應聘者。作為應聘流程之一,我經常要求應聘者寫一些 因此我檢查過相當多的 在最近提交的c 中,我注意到乙個趨勢,在任何...

標頭檔案的引入

在以下的示例中,函式max在 public.h標頭檔案中宣告,在 public.c程式檔案中定義,在book46.c程式中被呼叫。自定義函式的標頭檔案 public.h 自定義函式的程式檔案 public.c 呼叫者程式檔案 book46.c 編譯命令如下 注意 1 在book46.c的第6行 2 ...

c 命名空間及標頭檔案

命名空間是1998c 標準新增特性 c 自98才標準化 命名空間 用來解決不同模組可能有識別符號衝突的問題。c 標註庫使用了乙個命名空間std,即c 標註庫中所有的識別符號都定義在命名空間std中。使用c 標註庫中的任何識別符號的方式有三種 1.直接指定識別符號號 如 std cout 標頭檔案he...