2

プロジェクトに「code.h」と「readData.cpp」の2つのファイルがあるとします。code.hファイルには私のクラスインターフェイス(およびいくつかのメンバー関数定義)があり、readData.cppファイルには私のクラスのプライベートメンバー関数の1つの定義があります。

これが私の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

OK、これまでのところとても良いです。しかし、ここに私の質問があります。このmyLib.aライブラリを配布し、他のユーザーに次のインターフェイスのようなものだけを表示させたいと思います。

Class MyClass {
    double sample();
};

どうやってやるの?

4

1 に答える 1

0

Vaughn Cato による有益なコメントのおかげで、PIMPL 戦略を使用してこの問題を修正しました。

于 2012-12-16T18:31:25.193 に答える