【发布时间】:2013-02-12 19:48:50
【问题描述】:
在学校学习 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 文件中的代码?
【问题讨论】:
-
简而言之,是的。库文件基本上是目标文件的集合,并且在“正常”构建程序时链接目标文件。库的工作方式完全相同。
-
你的代码有很多错误,最好用编译器来验证我们的想法……
-
是的,对不起。我意识到代码不会运行,我只是想输入足够多的内容以希望能解决问题。