我目前有这样的代码:
static void foo(function<void(B)> func)
{
A a;
B* b = a->getB_ptr();
func(*b);
}
foo(func)
是一个易于使用b并同时隐藏其来源的界面。但是b的寿命必定存在于a。我想摆脱那种功能风格,而是使用OO模式。我已经考虑过从A继承B,但我无法触及他们的实现。
答案 0 :(得分:0)
这个怎么样?:
class C {
A a
public:
B& operator ->() { return *a->getB_ptr(); }
}