2
假設我的項目中有兩個文件:「code.h」和「readData.cpp」。 code.h文件具有我的類接口(以及一些成員函數定義),readData.cpp文件具有我的類的一個私有成員函數的定義。爲我的C++靜態庫創建接口
想這是我的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();
};
我怎麼能這樣做?
pimpl成語是一種方式。 –
相關問題:http://stackoverflow.com/q/206272/951890 –
@VaughnCato好的,謝謝你的建議。假設我不在乎隱藏接口,但只想隱藏文件readData.cpp的內容。那麼,我該怎麼做?我只是將myLib.a文件與文件code.h一起分發? (我從來沒有創建過一個庫) – synaptik