2014-01-18 232 views
0

我正在學習C++並遵循本教程:http://www.learncpp.com/cpp-tutorial/19-header-files/ 他們已經命名了應添加的頭文件,而我命名了我的02MultipleFiles_add.cpp。所以,當我到了包括部分:C++包含頭文件

02MultipleFiles_add.cpp:

#ifndef ADD_H 
#define ADD_H 

int add(int x, int y); 

#endif 

02MultipleFiles.cpp:

#include "02MultipleFiles_add.h" 

錯誤:
無法打開源文件「02MultipleFiles_add.h」
標識符「add」未定義

在該示例中,爲什麼當文件名爲add.cpp時稱爲add.h?
爲什麼我不能包含我的文件?

謝謝。

+1

您可能在名稱爲「02MultipleFiles_add.cpp」中有拼寫錯誤,或者您的問題是該文件應該根據「主文件」被稱爲「02MultipleFiles_add.h」。 –

+0

只是爲了在大多數情況下添加'#pragma once'可以代替'#ifndef'後衛。這是非標準的,但支持很好的預處理器指令。 –

回答

1

你的第一個文件需要從02MultipleFiles_add.cpp更名爲02MultipleFiles_add.h

+0

謝謝你的回覆,現在我得到一個奇怪的錯誤: – user3209520

+0

http://gyazo.com/5c019b1c125ab846c6698d3eb49d180e.png – user3209520

+0

這是錯誤,是否#ifndef ADD_H使它應該#include「add.h」? http://gyazo.com/a1212ac0dd0314df6d30cab0760d2a5f.png – user3209520

1

頭文件可以被稱爲什麼,而應,通常被稱爲「something.h」,而不是「something.cpp」。名爲「something.cpp」的文件是直接傳遞給編譯器的,並且不用於#include#include之後的文件名應該與文件系統中調用的文件相同。

我敢肯定,你在包含文件的名稱中輸入了一個錯字,應該將其重命名爲「02MultipleFiles_add.h」而不是「02MultipleFiles_add.cpp」。

1

您已將.Cpp擴展到您的頭文件。 所以只是改變了

02MultipleFiles_add.cpp

02MultipleFiles_add.h

和負載並重新編譯您的項目。 我認爲它會工作肯定

0

你應該把你的函數的定義在.cpp文件而不是.h文件。 我覺得因爲這是錯誤,因爲它試圖包括再次。