在学校学习 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
文件中具有访问功能?
或者一个更基本的问题,a .h
and .lib
file 的工作方式是否与常规 c++ 代码完全相同,只是在使用时不必编译它,并且您无权访问文件中的代码.lib
?