在學校學習C++時,我們從來沒有真正談過如何建立圖書館,所以對於我的基本理解感到抱歉。 從我在線閱讀的內容來看,它好像是一個庫,它只是一個已經編譯好的代碼的集合,然後有一個文件列出了該庫中可以訪問的功能。帶類的圖書館如何工作?
例如當我#include <cmath>
我現在可以調用sin(x)
而無需訪問cmath代碼來編譯它。我的問題是,這是否適用於有數據的類。
所以我可以創建一個圖書館
//AccumulatorLibrary.h
class Accumulator
{
public:
int num;
int increment() {num++};
void otherFunctions(); //otherFunctions defined in the .lib file
}
然後調用它
//Main
#include "AccumulatorLibrary.h"
#include <stdio>
int main()
{
Accumulator A(0); //initalize num to 0
Accumulator B(7); //initalize num to 7
cout<<A.increment;
cout<<B.increment;
cout<<A.increment;
}
,並得到1 8 2
輸出?總之,如果我弄清楚如何將一堆類放入庫文件中,只要該數據在.h
文件中具有訪問功能,我可以訪問我想要的任何數據嗎?
或者一個更基本的問題,做一個.h
和.lib
文件工作完全一樣的普通c + +代碼,除非它不必編譯時使用它,你沒有訪問代碼.lib
文件?
總之,是的。庫文件基本上是一個目標文件的集合,並且當您「正常」生成程序時鏈接目標文件。圖書館的工作方式完全相同。 – 2013-02-12 19:53:54
你在代碼中有許多錯誤,最好是使用編譯器來驗證我們的想法... – CapelliC 2013-02-12 19:54:04
雅,抱歉。我意識到代碼不會運行,我只是想輸入足夠的信息,希望能夠解決問題。 – user1860611 2013-02-12 20:00:12