簡體   English   中英

用C ++創建庫

[英]Creating Library in C++

我在許多庫中都看到過,其中包含兩個文件,一個是.H文件,另一個是.CPP文件。 .h是一個頭文件,其中包含函數原型,.CPP包含頭文件中每個函數的實際c ++代碼。

我想問一下我可以制作一個.h文件並在其中編寫所有c ++函數和類嗎。 並在需要時在main.cpp中包括該.h文件

是的你可以。 有時稱為僅標頭庫

當然,由於您的功能可能包含在同一程序的多個CPP文件中,因此您需要使它們全部內聯(或使用內部鏈接,靜態或匿名名稱空間)。

您可以在出色的Boost庫集合中看到其中一些。

是的,您可以這樣做。 標頭中的所有代碼將在編譯時粘貼到“ main.cpp”文件中。 通常在頭或hpp中聲明,然后在源或cpp中完成實現。 但是,您可以將所有內容放在標頭中,並包含在編譯后即可使用的標頭文件。 您可以在“ main.cpp”的標頭中聲明確切的內容,然后將其實現到另一個cpp文件中,而不使用.h文件,然后對其進行編譯,其作用與#include“ MyClass.hpp”相同(請注意,我個人將hpp用於c ++頭文件和將h用於c頭文件使我更輕松。)

我想問一下我可以制作一個.h文件並在其中編寫所有c ++函數和類嗎。 並在需要時在main.cpp中包括該.h文件

是的,你可以這么做。 可以將所有定義內聯到頭文件中。
盡管這很罕見,除非您有僅標頭(模板)庫。

將定義分成一個單獨的翻譯單元的原因之一是,當實現的一些小部分更改時,您不必重新編譯所有從屬代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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