在我的文件夾我有一個小version.cpp
文件結構如下:包括如何在C++中工作?
#include "thelibr/version.h"
const int major = MAJOR;
const int minor = MINOR;
我無法理解這樣的代碼做什麼以及如何使用它的代碼的剩餘部分(存儲在相同的其他文件目錄)。
首先,據我所知,代碼將兩個變量(major
和minor
),但什麼是我不明白是哪裏的MAJOR
和MINOR
值被設置的值。它們是否設置爲thelibr/version.h
。
其次,當執行上面給出的代碼行時,我也不清楚。它們沒有放入任何可能從其他文件中編碼的其他方法調用的方法。那麼,如何調用這些行呢?
第三,我看到字符串version
不存在於同一目錄中的任何其他文件中。這是否意味着這些文件都不使用存儲在version.cpp
中的代碼。我們不應該在其他文件中包含version.h
文件,以便能夠使用version.cpp
中的代碼嗎?第四,如果我們在version.cpp
中設置了major
和minor
變量的值,那麼這些變量是否會在其他地方可見?它令我想起我,因爲我們不使用任何字樣,如global
或external
。
恕我直言,如果你提供了一個例子,你可能會一路走來並顯示一個樣本version.h,version.cpp。否則,我擔心你的回答可能會導致OP的混亂。 – idoby
@busy_wait我還應該添加什麼?除了我認爲他已經擁有的頭衛兵之外,這個特殊的例子似乎已經被覆蓋了。問題是許多其他類型的情況,例如'inline'函數,'static'對象和'static'成員。說實話,聽起來OP似乎並沒有準備好深入C++。 – Potatoswatter
我認爲關於#includes的問題同樣適用於C++的子集,看起來就像C. IMO最重要的一點應該是說明通過頭文件共享#define與共享一個在其中一個實現文件中實際定義的變量的聲明。只是我的兩分錢。我不想通過寫我自己的方式來削弱你的好回答。 – idoby