假设我的项目中有2个文件:“code.h”和“readData.cpp”。 code.h文件具有我的类接口(interface)(以及一些成员函数定义),而readData.cpp文件具有我的类的私有(private)成员函数之一的定义。
假设这是我的code.h文件的内容:
Class MyClass {
public:
MyClass() { readData() };
double sample();
private:
std::vector<double> data;
void readData();
void foo();
};
double MyClass::sample() {
// ...
}
void MyClass::foo() {
// ...
}
假设这是我的readData.cpp文件的内容:
#include "code.h"
void MyClass::readData() {
data.push_back(1.3083);
data.push_back(83.24);
// ...
}
现在,在编译并生成目标文件“readData.o”之后,我使用以下代码创建一个库:
ar rvs myLib.a readData.o
好的,到目前为止很好。但是,这就是我的问题所在。我想分发此myLib.a库,并且仅允许其他用户看到类似以下界面的内容:
Class MyClass {
double sample();
};
我怎样才能做到这一点?
最佳答案
感谢Vaughn Cato的有用评论,我使用PIMPL策略解决了这个问题。