假设我的项目中有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策略解决了这个问题。

09-11 17:33