假设您有两个(或更多)具有私有成员向量的类:
class A {
private:
std::vector<X> priv_vec;
public:
//more stuff
}
class B {
private:
std::vector<Y> priv_vec;
public:
//more stuff
}
你有一个仿函数类,它有一个状态并在一个通用向量上工作(对元素进行排序或计数或类似的东西)。函子的状态由函子正在处理的第一个向量初始化。如果稍后将仿函数应用于另一个向量,它将根据状态改变其行为(以相同的方式排序或在与第一个向量一样多的元素之后修剪第二个向量等)
在不将私有向量暴露给其他类或类的用户的情况下,实现这样的函子(设计模式或功能接口?)的最佳方法是什么?
例如:用户想用 A 类的对象初始化这个函子,然后将这个初始化的函子用于 B 类的一个或多个对象。用户不能(也不应该)使用私有向量直接作为函子的函数参数。