2

假设我的项目中有 2 个文件:“code.h”和“readData.cpp”。code.h 文件有我的类接口(和一些成员函数定义),而 readData.cpp 文件有我的类的私有成员函数之一的定义。

假设这是我的 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();
};

我怎样才能做到这一点?

4

1 回答 1

0

感谢 Vaughn Cato 的有用评论,我使用 PIMPL 策略解决了这个问题。

于 2012-12-16T18:31:25.193 回答