簡體   English   中英

在C ++中包含文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM