2015-01-31 111 views
-1

我最近一直在用C++編寫,我對.cpp vs .h感到困惑 - 何時使用它們以及應該如何使用它們。我一直在閱讀,你應該把函數定義放在一個單獨的.cpp文件中,並且頭文件應該用於聲明,但是如何使用單獨的.cpp文件?我是#include它還是什麼?我正在尋找關於.h.cpp的說明,以及應該在何處以及如何包括單獨的.cpp文件。.cpp vs .h和我應該在哪裏放置函數定義

+0

你的意思正常功能或模板? – wimh 2015-01-31 21:58:57

+0

另請參見[頭文件中的C++代碼](http://stackoverflow.com/questions/583255/c-code-in-header-files/)和[將代碼拆分爲頭文件/源文件](http:// stackoverflow.com/questions/2584856/splitting-code-into-headers-source-files)和[爲什麼在C++中有頭文件和'.cpp'文件](http://stackoverflow.com/questions/333889/why - 具備頭-文件和 - CPP-文件-在-C)。 – 2015-02-01 07:00:59

回答

0

您應該使用的.h用於函數原型和數據類型的文件聲明以及用於預處理器指令和用於定義的.cpp文件。例如,test.h可能看起來像

#define CONSTANT 123 // pre-processor directive 
void myfunction(char* str); 

和你test.cpp可能看起來像

#include <stdio.h> 
#include "test.h" 

int main(int argc char **argv) 
{ 
    myfunction("Hello World"); 
    return 0; 
} 

void myfunction (char* str) 
{ 
    printf("%s and constant %d", str, CONSTANT); 
    return; 
} 
+2

你可能想提到'內聯函數(隱式和顯式)和'模板'。 – Deduplicator 2015-01-31 22:38:50

0

通常類聲明進入(.h)頭文件,實現進入.cpp文件。

您在cpp文件的頭文件,所以所有的功能將被認可,你應該記住使用的#ifndef頭文件,以避免錯誤(包括循環)