[英]Include files in c++?
我想知道如何在C ++中包含文件...我在看很多不同的東西,無法弄清楚。 我只想包含另一個函數或方法,或者您稱其為w / e。
我知道您需要像#include“ filename.cpp”; 但我不知道如何使用filename.cpp或.h或w / e中的內容來調用它。
謝謝,如果您能解釋的話,我知道java很好。 (它似乎根本不同於java。)
包含文件用於描述應用程序的其他元素要使用的接口或類。 本質上,您的類的描述包含在標頭(.h)文件中。 該類的實現包含在源(.cpp)文件中。 例如:
您的頭文件看起來像這樣:
// MyClass.h
class MyClass {
public:
MyClass();
void Method1();
...
};
您的實現文件如下所示:
// MyClass.cpp
MyClass::MyClass() {
// implementation details
}
void MyClass::Method1() {
// implementation details
}
現在,任何需要使用MyClass的人都可以通過以下方式包含MyClass.h:
#include "MyClass.h"
希望這可以幫助。
通常,在標頭中使用聲明,而在源文件中使用實現。 盡管在模板的情況下有例外。 請記住,只有源文件才被編譯。 因此,編譯器必須知道源文件中存在的任何符號。 現在舉一個例子-
foo.h中
struct foo
{
int number ;
foo( int x );
};
Foo.cpp中
現在,有一個方法在struct foo
即構造器中未實現。 如果您需要在單獨的源文件中實現該功能,則需要#include "foo.h"
。 沒有它,如果您只是繼續實現它的方法,編譯器將不知道什么是“ foo”。
#include "foo.h"
foo::foo( int x )
{
number = x; // This can be achieved through initializer lists too.
}
在編譯器階段之前,預處理器foo.cpp
foo.h
的內容復制到foo.cpp
。 經過預處理后,原始foo.cpp
變為-
struct foo
{
int number ;
foo( int x );
};
foo::foo( int x )
{
number = x; // This can be achieved through initializer lists too.
}
現在,源文件中正在定義/使用的每個方法/符號對於它所登錄的編譯器都是已知的。 通常, xh
的相應源文件將是x.cpp
。 還知道,每個源文件都會經過這些階段以提供最終的可執行文件。 ( 預處理器->編譯器->鏈接器 )。 希望它能在一定程度上有所幫助。
約定僅包含頭文件(* .h或* .hpp)。 這些文件通常用於定義類型和宏等。
您如何使用它實際上取決於您的應用程序在做什么-您一直很模糊。 例如,如果定義一個類,通常會在頭文件中聲明該類及其成員。 這些方法的實際代碼可以放在* .cpp文件中。
只要#include頭文件,編譯器就知道這些方法需要什么語法。
標准庫文件和程序員定義的文件之間在c ++中包含文件有所不同。
對於標准庫,我們編寫:
#include <FileName>
而對於程序員定義的文件,我們編寫:
#include "FileDestination\FileName.extension"
請注意,沒有分號。
如果要使用的東西在名稱空間內,則應該提及該名稱空間或使用它來使用名稱空間write:
using namespace NAMESPACE_NAME;
不使用命名空間就可以很容易地提到它,例如編寫:
std::cout << "Hello, World!\n";
希望這對您有用!,對不起,我的英語不好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.