在学校学习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