由于找不到 C++版块,只能在这里问个类成员隐藏的问题。
简单的说,就是想彻底隐藏类中的某些方法(使其在头文件不可见)。这要是在 ObjectiveC 中用 Extension 分分钟就搞定了,而且代码也不冗余,C++不知道如何做?
简单的说,就是想彻底隐藏类中的某些方法(使其在头文件不可见)。这要是在 ObjectiveC 中用 Extension 分分钟就搞定了,而且代码也不冗余,C++不知道如何做?
曲线救国的思路是 pimpl 或者接口化。
void Bar();
}
———————————————————–
//////////////////////////////
// foo_impl.h
#include “foo.h”
class FooImpl : public Foo
{
public:
void Bar();
private:
void Xyz();
};
———————————————————–
然后对外只暴露 foo.h 即可
//////////////////////////////
// foo.h
class Foo
{
public:
static Foo* newFoo();
virtual void Bar();
}
———————————————————–
//////////////////////////////
// foo_impl.h
#include “foo.h”
class FooImpl : public Foo
{
public:
virtual void Bar() override;
private:
void Xyz();
private:
…….
};
———————————————————–
然后对外只暴露 foo.h 即可