在学校学习C ++时,我们从未真正讨论过如何构建库,因此对我来说了解还比较基础。根据我在网上阅读的内容,似乎库只是一组已编译的代码,然后有一个“
.h
”文件列出了该库中可以访问的函数。例如,当我 #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
文件中的代码?