将对象的生命周期绑定到其源

时间:2014-08-08 13:58:25

标签: c++ oop

我目前有这样的代码:

static void foo(function<void(B)> func)
{
    A a;
    B* b = a->getB_ptr();
    func(*b);
}

foo(func)是一个易于使用b并同时隐藏其来源的界面。但是b的寿命必定存在于a。我想摆脱那种功能风格,而是使用OO模式。我已经考虑过从A继承B,但我无法触及他们的实现。

1 个答案:

答案 0 :(得分:0)

这个怎么样?:

class C {
  A a
  public:
  B& operator ->() { return *a->getB_ptr(); }
}